J'ai développé une application pour Lollipop (API 21).
Lorsque je change la couleur Button
en quelque chose, l'effet d'entraînement ne fonctionne pas.
J'ai trouvé des bibliothèques tierces pour l'effet d'entraînement, mais je veux le faire avec une API standard.
Cette réponse n'a pas aidé non plus.
XML:
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="New Button"
Android:id="@+id/button"
Android:layout_below="@+id/textView"
Android:background="@Android:color/holo_blue_bright"
Android:layout_alignParentStart="true"
Android:layout_marginTop="76dp"
/>
Vous devez définir l'arrière-plan de votre bouton sur un RippleDrawable que vous pouvez définir en XML. (Je vais le nommer holo_blue_ripple.xml
)
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:color="@Android:color/white"> <!-- ripple color -->
<item Android:drawable="@Android:color/holo_blue_bright"/> <!-- normal color -->
</ripple>
Ensuite, référencez-le avec Android:background="@drawable/holo_blue_ripple"
.
Essaye ça:
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="?attr/selectableItemBackground"
...
/>
Basé sur ce tutoriel et les documents officiels
De plus, ?attr/selectableItemBackgroundBorderless
peut être utilisé pour un effet d'entraînement circulaire.
Essayez cet attribut
Android:background="?attr/selectableItemBackground"
C'est le moyen le plus simple de montrer l'effet d'entraînement dans votre vue/mise en page.