Uma simples biblioteca baseada no PopupWindow para criação de Tooltips em Android.
- 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 umXML
de layout - Cores e dimenções customizadas via
Builder
ouXMLs
de resources
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();
<color name="simpletooltip_background">@color/colorAccent</color>
<color name="simpletooltip_text">@android:color/primary_text_light</color>
<color name="simpletooltip_arrow">@color/colorAccent</color>
<dimen name="simpletooltip_max_width">150dp</dimen>
<dimen name="simpletooltip_overlay_offset">10dp</dimen>
<dimen name="simpletooltip_margin">10dp</dimen>
<dimen name="simpletooltip_padding">8dp</dimen>
<dimen name="simpletooltip_arrow_width">30dp</dimen>
<dimen name="simpletooltip_arrow_height">15dp</dimen>
<dimen name="simpletooltip_animation_padding">4dp</dimen>
<integer name="simpletooltip_overlay_alpha">120</integer>
<integer name="simpletooltip_animation_duration">800</integer>
<style name="simpletooltip_default" parent="@android:style/TextAppearance.Medium"></style>
Para mais informações, confira o projeto de exemplo e o javadoc.
-
Adicione em seu arquivo raiz
build.gradle
ao final dos repositórios:allprojects { repositories { ... maven { url "https://jitpack.io" } } }
-
Adicione a dependência
dependencies { compile 'com.github.douglasjunior:android-simple-tooltip:0.2.2' }
dependencies {
compile('com.github.douglasjunior:android-simple-tooltip:master-SNAPSHOT') {
changing = true // Gradle irá checar por atualizações a cada 24 horas
}
}
Novas funcionalidades, correções de bug e melhorias na tradução serão bem vindas! Para dúvidas e sugestões utilize as issues.
Antes de enviar seu PR, execute a checagem do gradle.
./gradlew build connectedCheck
-
Se fechar a
Dialog/Activity
sem que a Tooltip seja encerrada, pode ocorrer o errojava.lang.IllegalArgumentException: Could not lock surface
. Este erro ocorre devido a animação continuar após o fechamento daDialog/Activity
. (Este erro não afeta no funcionamento do programa.) -
Se chamar
tooltip.show()
após aActivity/Dialog
ser encerrada, pode ocorrer o erroandroid.view.WindowLeaked: Activity has leaked window android.widget.PopupWindow$PopupViewContainer that was originally added here
. Leia mais. (Este erro não afeta no funcionamento do programa.) -
À partir da API 24 o Android mudou o comportamento da
PopupWindow
em relação a propriedadesetClippingEnabled
, isso faz com que a Popup possa ficar cortada se não couber na tela. Leia mais.
The MIT License (MIT)
Copyright (c) 2016 Douglas Nassif Roma Junior
Veja o arquivo de licença completo.