Comment faire une circulaire d'ondulation sur un bouton lorsqu'il est cliqué?
Fond
Sur le dialer app de Android, lorsque vous commencez à chercher quelque chose et que vous cliquez sur le bouton de la flèche sur la gauche de l'EditText, vous obtenez une circulaire effet d'entraînement sur elle :
Le problème
J'ai essayé de le faire aussi, mais j'ai eu une forme rectangulaire:
<ImageButton
android:id="@+id/navButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dp"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/search_ic_back_arrow"/>
La question
Comment puis-je faire sur le bouton circulaire effet d'entraînement lorsqu'elle est cliquée? Dois-je créer un nouveau drawable, ou est-il intégré dans la voie?
- github.com/traex/RippleEffect essayez ceci
- réponse possible est ici stackoverflow.com/questions/33477025/...
Vous devez vous connecter pour publier un commentaire.
Si vous avez déjà une image d'arrière-plan, voici un exemple d'une ondulation qui ressemble de près de selectableItemBackgroundBorderless:
ic_filter_state.xml:
state_pressed_ripple.xml: (une opacité de 10% sur fond blanc) 1AFFFFFF
Si vous utilisez AppCompat thème, vous pouvez alors régler l'arrière-plan de la vue que:
Cela va ajouter de la circulaire d'ondulation sur les 21 et ci-dessus et fond carré ci-dessous 21.
android:clipChildren="false"
dans les mises en page ainsi à permettre à l'animation pour se propager.android:foreground="?selectableItemBackgroundBorderless"
et il donne une ondulation, cependant, l'effet d'entraînement révèle un carré - ce qui est laid.Un autre attribut rond avec effet d'entraînement, spécialement pour la barre d'action:
UPD: Ondulation de la couleur peut être changée par cet attribut:
Mais gardez à l'esprit, cet attribut s'applique à tout défaut d'effets d'entraînement.
Créer et définir une ondulation drawable comme arrière-plan. Quelque chose comme cela.
Vous pouvez créer cercle ondulation dessinés à l'aide de
android:radius
attribut xml.Exemple:
Prêter attention, que votre
your_radius
doit être inférieure à votre point de vue de la largeur et de la hauteur.Par exemple: si vous avez vue la taille
60dp x 60dp
your_radius
devrait être proche de30dp
(largeur /2 ou hauteur /2).Il suffit d'Ajouter ce fond de votre point de vue
"android:background=?android:attr/actionBarItemBackground"
Si vous voulez plus générique des fichiers XML, j'ai deux fichiers:
1) btn_ripple_background avec le code:
2) ripple_circuler_shape avec le code:
enfin l'utilisation:
android:foreground="@drawable/ripple_btn_background"