Supprimer la couleur de fond dans Android
J'ai mis backgroundColor
dans le code comme ceci,
View.setBackgroundColor(0xFFFF0000);
Comment supprimer cette couleur de fond sur certains événements?
View.setBackgroundColor(0);
fonctionne également. Il n'est pas nécessaire de mettre tous ces zéros.
Toutes les réponses concernant le réglage de la couleur sur transparent fonctionneront techniquement. Mais ces approches posent deux problèmes:
Si vous regardez comment fonctionne View.setBackgroundColor(int color)
, vous verrez une solution assez simple:
/**
* Sets the background color for this view.
* @param color the color of the background
*/
@RemotableViewMethod
public void setBackgroundColor(@ColorInt int color) {
if (mBackground instanceof ColorDrawable) {
((ColorDrawable) mBackground.mutate()).setColor(color);
computeOpaqueFlags();
mBackgroundResource = 0;
} else {
setBackground(new ColorDrawable(color));
}
}
La couleur int
est simplement convertie en ColorDrawable
et ensuite transmise à setBackground(Drawable drawable)
. La solution pour supprimer la couleur de fond consiste donc simplement à supprimer le fond avec:
myView.setBackground(null);