web-dev-qa-db-fra.com

Comment définir Paint.setColor (R.color.white)

J'ai une vue personnalisée qui utilise Paint et Canvas pour dessiner des objets. Ma question est de savoir comment définir:

int color = R.color.white;
Paint.setColor(color);

de mon /res/valuse/color.xml qui inclut des ressources comme

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#FFFFFF</color>
    <color name="black">#000000</color>
    ...
</resources>
21
Vasil Valchev
int color = ContextCompat.getColor(context, R.color.white);
Paint.setColor(color);

La méthode setColor() prend un numéro de couleur comme valeur int, mais pas un identifiant de ressource qui est également int.

54
Vitali Olshevski

Essayez d'utiliser color.white:

Paint.setColor(Color.white)
11
Hani Hussein

obtenez d'abord votre couleur à partir du fichier xml

int color = context.getResources().getColor(R.color.colorPrimary); // old

est obsolète maintenant, utilisez-le à la place

int color = ContextCompat.getColor(context, R.color.colorPrimary); // new

définir la couleur

Paint.setColor(color);

aperçu du fichier xml: res/values ​​/ color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>
9
Vasil Valchev