J'essaie de définir la couleur d'arrière-plan par programme, mais lorsque je définis chacune de mes couleurs, l'arrière-plan est noir mais toutes les couleurs d'arrière-plan sont blanches, comme le thème de l'application.
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(color.white);
Pouvez-vous voir le code?
Je n'ai pas compris votre question ... qu'entendez-vous par "quand je règle chacune de mes couleurs"? essayez ceci (modifier: "#fffff" dans la réponse originale remplacé par "#ffffff"
yourView.setBackgroundColor(Color.parseColor("#ffffff"));
vous devez utiliser la méthode getResources (), essayez d'utiliser le code suivant
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(getResources().getColor(color.white));
Edit ::
getResources.getColor () est obsolète, utilisez comme ci-dessous
root.setBackgroundColor(ContextCompat.getColor(this, R.color.white));
Vous pouvez utiliser
root.setBackgroundColor(0xFFFFFFFF);
ou
root.setBackgroundColor(Color.parseColor("#ffffff"));
Les réponses précédentes sont maintenant obsolètes, vous devez utiliser ContextCompat.getColor
pour récupérer la couleur correctement:
root.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
Si vous souhaitez uniquement utiliser certaines des couleurs Android prédéfinies, vous pouvez utiliser Color.COLOR
(où COLOR
est BLACK
, WHITE
, RED
, etc.):
myView.setBackgroundColor(Color.GREEN);
Sinon, vous pouvez faire comme d'autres l'ont suggéré avec
myView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.myCustomGreen));
Je ne recommande pas d'utiliser directement une couleur hexadécimale. Vous devez conserver toutes vos couleurs personnalisées dans colors.xml.
Cela doit fonctionner:
vous devez utiliser getResources (). getColor (R.color.WHITE) pour obtenir la ressource de couleur, que vous devez ajouter dans le fichier de ressources colors.xml
View someView = findViewById(R.id.screen);
someView.setBackgroundColor(getResources().getColor(R.color.WHITE));
Dans mon cas, cela ne changeait pas la couleur parce que j'étais définir la couleur dans ma ressource xml.
Après avoir supprimé la ligne qui a défini la couleur, cela a fonctionné parfaitement par programmation
Ceci est un exemple que j'ai fait dans un RecyclerView
final Drawable drawable = ContextCompat.getDrawable(mContext, R.drawable.ic_icon).mutate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
holder.image.setBackground(drawable);
} else {
holder.image.setBackgroundDrawable(drawable);
}
Si vous enregistrez le code de couleur dans le fichier colors.xml qui se trouve sous le dossier de valeurs, vous devez appeler le texte suivant:
root.setBackgroundColor(getResources().getColor(R.color.name));
name
signifie que vous déclarez dans la balise <color/>
.