# Android Simple Tooltip
[EN](https://github.com/douglasjunior/android-simple-tooltip/blob/master/README.md)
[](https://github.com/douglasjunior/android-simple-tooltip/blob/master/LICENSE)
[](https://travis-ci.org/douglasjunior/android-simple-tooltip)
[](https://jitpack.io/#douglasjunior/android-simple-tooltip)
[](#download)
[](http://android-arsenal.com/details/1/3578)
Uma simples biblioteca baseada no [PopupWindow](http://developer.android.com/intl/pt-br/reference/android/widget/PopupWindow.html) para criação de Tooltips em Android.
## Funcionalidades
- Trabalha a partir do Android 2.1 (API 7) *Obs: animação acima do 3.0 (API 11)*
- Uso simplificado: poucos parâmetros em uma única linha de código
- Animação com controle de velocidade e tamanho
- Opção para fechar com toque dentro ou fora do *tooltip*
- Modo modal (impede o toque nos componentes do background)
- Overlay (escurece o fundo dando destaque no componente âncora)
- Personalização da seta (*arrow*)
- Conteúdo inflável a partir de uma `View` ou um `XML` de *layout*
- Cores e dimenções customizadas via `Builder` ou `XMLs` de *resources*
## Demonstração

## Uso
### Básico
```java
View yourView = findViewById(R.id.your_view);
new SimpleTooltip.Builder(this)
.anchorView(yourView)
.text("Texto do Tooltip")
.gravity(Gravity.END)
.animated(true)
.transparentOverlay(false)
.build()
.show();
```
### Resources
```xml
@color/colorAccent
@android:color/primary_text_light
@color/colorAccent
```
```xml
150dp
10dp
10dp
8dp
30dp
15dp
4dp
```
```xml
120
800
```
```xml
```
Para mais informações, confira o [projeto de exemplo](https://github.com/douglasjunior/android-simple-tooltip/blob/master/sample/src/main/java/io/github/douglasjunior/androidSimpleTooltip/sample/MainActivity.java) e o [javadoc](https://jitpack.io/com/github/douglasjunior/android-simple-tooltip/master-SNAPSHOT/javadoc/).
## Download
### Release
1. Adicione em seu arquivo raiz `build.gradle` ao final dos repositórios:
```javascript
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
```
2. Adicione a dependência
```javascript
dependencies {
compile 'com.github.douglasjunior:android-simple-tooltip:0.2.2'
}
```
### Snapshot
```javascript
dependencies {
compile('com.github.douglasjunior:android-simple-tooltip:master-SNAPSHOT') {
changing = true // Gradle irá checar por atualizações a cada 24 horas
}
}
```
## Contribua
Novas funcionalidades, correções de bug e melhorias na tradução serão bem vindas! Para dúvidas e sugestões utilize as [issues](https://github.com/douglasjunior/android-simple-tooltip/issues).
Antes de enviar seu PR, execute a checagem do gradle.
```bash
./gradlew build connectedCheck
```
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TM8BGN6PJF6SS)
## Problemas conhecidos
1. Se fechar a `Dialog/Activity` sem que a Tooltip seja encerrada, pode ocorrer o erro `java.lang.IllegalArgumentException: Could not lock surface`. Este erro ocorre devido a animação continuar após o fechamento da `Dialog/Activity`. (Este erro não afeta no funcionamento do programa.)
2. Se chamar `tooltip.show()` após a `Activity/Dialog` ser encerrada, pode ocorrer o erro `android.view.WindowLeaked: Activity has leaked window android.widget.PopupWindow$PopupViewContainer that was originally added here`. [Leia mais.](http://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added) (Este erro não afeta no funcionamento do programa.)
3. À partir da API 24 o Android mudou o comportamento da `PopupWindow` em relação a propriedade [`setClippingEnabled`](https://developer.android.com/reference/android/widget/PopupWindow.html#setClippingEnabled(boolean)), isso faz com que a Popup possa ficar cortada se não couber na tela. [Leia mais](https://github.com/douglasjunior/android-simple-tooltip/issues/40).
## Licença
```
The MIT License (MIT)
Copyright (c) 2016 Douglas Nassif Roma Junior
```
Veja o [arquivo de licença](https://github.com/douglasjunior/android-simple-tooltip/blob/master/LICENSE) completo.