Permalink
b4b84ab Sep 3, 2016
164 lines (124 sloc) 5.59 KB

Android Simple Tooltip

EN

Licence MIT Build Status Release Android Arsenal

Uma simples biblioteca baseada no PopupWindow 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

Demonstração

Uso

Básico

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

<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_circle_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.

Download

Gradle

  1. Adicione em seu arquivo raiz build.gradle ao final dos repositórios:

    allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }
  2. Adicione a dependência

    dependencies {
        compile 'com.github.douglasjunior:android-simple-tooltip:0.1.2'
    }

Maven

  1. Adicione em seu arquivo pom.xml ao final dos repositórios:

    <repositories>
        ...
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>
  2. Adicione a dependência

    <dependency>
        <groupId>com.github.douglasjunior</groupId>
        <artifactId>android-simple-tooltip</artifactId>
        <version>0.1.2</version>
    </dependency>

Snapshot

dependencies {
    compile('com.github.douglasjunior:android-simple-tooltip:master-SNAPSHOT') {
        changing = true // Gradle irá checar por atualizações a cada 24 horas
    }
}

ou

<dependency>
    <groupId>com.github.douglasjunior</groupId>
    <artifactId>android-simple-tooltip</artifactId>
    <version>master-SNAPSHOT</version>
</dependency>

Faça uma doação

Doar

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.

Antes de enviar seu PR, execute a checagem do gradle.

./gradlew build connectedCheck

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. (Este erro não afeta no funcionamento do programa.)

Licença

The MIT License (MIT)

Copyright (c) 2016 Douglas Nassif Roma Junior

Veja o arquivo de licença completo.