Je veux changer le Backgroundtint d'une vue et c'est la seule façon que j'ai trouvée. Mais je reçois un message qui ne fonctionne qu'avec certaines API. Puis-je faire en quelque sorte travailler jusqu'à API 15? Ou existe-t-il réellement une meilleure méthode pour montrer à l'utilisateur qu'un bouton est sélectionné?View.setBackgroundTintList avant API 21?
1
A
Répondre
2
ViewCompat.setBackgroundTintList() fera l'affaire jusqu'à API 4.
applique une teinte à la drawable d'arrière-plan.
Cela prendra toujours effet lors de l'exécution sur API v21 ou version ultérieure. Lors de l'exécution sur des plates-formes antérieures à l'API v21, elle ne prend effet que si la vue met en œuvre l'interface TintableBackgroundView.
1
Oui,
En utilisant du code java, vous pouvez changer la couleur d'une vue drawable ainsi que comme:
public static void setIconColor(TextView tv, int which, int color) {
tv.getCompoundDrawables()[which].mutate();
tv.getCompoundDrawables()[which].setColorFilter(ContextCompat.getColor(tv.getContext(), color), PorterDuff.Mode.SRC_ATOP);
}
public static void setIconColor(ImageView imageView, int color) {
imageView.getDrawable().mutate();
imageView.getDrawable().setColorFilter(ContextCompat.getColor(imageView.getContext(), color), PorterDuff.Mode.SRC_ATOP);
}
Pour Bouton d'utilisateur sélectionné? Vous devez utiliser
android:background="?attr/selectableItemBackground"
J'espère que cela vous aidera!
Merci, cela fonctionne, même si le clic a cette animation vraiment laide. – newToEverything