J'essaye d'ajouter une animation d'ondulation au clic de bouton. J'ai aimé ci-dessous mais cela nécessite minSdKVersion à 21.
ripple.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Bouton
<com.devspark.robototextview.widget.RobotoButton
android:id="@+id/loginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple"
android:text="@string/login_button" />
Je veux le rendre rétrocompatible avec la bibliothèque de conception.
Comment cela peut-il être fait?
android
material-design
N Sharma
la source
la source
?attr:
lieu de faire?android:attr
référence à la bibliothèque de support v7, qui, en supposant que vous l'utilisez, vous offre une rétrocompatibilité avec l'API 7. Voir: developer.android.com/tools/support-library/features. html # v7J'avais auparavant voté pour clore cette question comme hors sujet mais en fait j'ai changé d'avis car c'est un effet visuel assez sympa qui, malheureusement, ne fait pas encore partie de la bibliothèque de support. Il apparaîtra très probablement dans la prochaine mise à jour, mais aucun délai n'est annoncé.
Heureusement, peu d'implémentations personnalisées sont déjà disponibles:
y compris les ensembles de widgets sur le thème du matériel compatibles avec les anciennes versions d'Android:
afin que vous puissiez essayer l'un de ceux-ci ou google pour d'autres "widgets matériels" ou plus ...
la source
J'ai fait une classe simple qui fait des boutons ondulés, je n'en ai jamais eu besoin à la fin donc ce n'est pas le meilleur, mais la voici:
ÉDITER
Comme beaucoup de gens recherchent quelque chose comme ça, j'ai créé une classe qui peut faire en sorte que d'autres vues aient un effet d'entraînement:
la source
addRippleToView
pour ajouter l'effet d'entraînement. Plutôt faire chaque vue dans leRecyclerView
aRippleViewCreator
Parfois, vous avez un arrière-plan personnalisé, dans ce cas, une meilleure solution est d'utiliser
android:foreground="?selectableItemBackground"
la source
C'est très simple ;-)
Vous devez d'abord créer deux fichiers pouvant être dessinés, un pour l'ancienne version de l'API et un autre pour la dernière version, bien sûr! si vous créez le fichier dessinable pour la dernière version de l'api, android studio vous suggère de créer automatiquement l'ancien. et définissez enfin ce dessinable sur votre vue d'arrière-plan.
Exemple de dessin pour la nouvelle version de l'API (res / drawable-v21 / ripple.xml):
Exemple de dessin pour l'ancienne version de l'API (res / drawable / ripple.xml)
Pour plus d'informations sur Ripple Drawable, visitez simplement ceci: https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html
la source
cette ligne sera parfois utilisable sur n'importe quelle mise en page ou composants.
Comme en.
la source