Créer une nouvelle couleur drawable
Je suis en train de convertir une valeur hexadécimale à un int donc je peux créer une nouvelle couleur drawable. Je ne sais pas si c'est possible, mais selon la la documentation, il le devrait. C'est évident, demande
public ColorDrawable (int couleur)
Ajoutée de l'API de niveau 1 Crée une nouvelle ColorDrawable avec l'
couleur.Paramètres couleur La couleur pour dessiner.
Donc, mon code ne fonctionne pas parce que je suis un Invalide int: "FF6666 d'erreur". Des idées?
int decode = Integer.decode("FF6666");
ColorDrawable colorDrawable = new ColorDrawable(decode);
- si l'une des réponses fournies résolu votre réponse, pensez à valider accepté de répondre, afin que l'autre connaît votre problème est résolu.
- Il y a une belle classe utilitaire android.les graphiques.Des couleurs qui ont une méthode parseColor. Essayez de l'utiliser à la place et ne pas oublier d'ajouter le dièse (#) préfixe à vos couleurs représentation de chaîne, par exemple #FF6666
Vous devez vous connecter pour publier un commentaire.
Puisque vous parlez de hex, vous devez commencer avec
0x
et n'oubliez pas de l'opacité.Donc en gros: 0xFFFF6666
Vous pouvez également créer un nouveau colors.xml fichier dans /res et de définir les couleurs comme:
et simplement obtenir la couleur définie dans l'arrêt R. de couleur.mycolor
new ColorDrawable(getResources().getColor(R.color.red)))
merciPour l'utilisation avec ContextCompat et rehuse la couleur que vous pouvez faire quelque chose comme ceci:
this
?Il devrait en être ainsi...
Note j'ai utilisé 8 chiffres hexadécimaux, pas 6 chiffre hexadécimal . qui ajouter à la transparence
cd
utilisé en relation avecToast
?Je pense que vous devez utiliser :
Par après conseils ci-dessus,pour être un résumé de cette question:
ColorDrawable colorDrawable = new ColorDrawable(Couleur.parseColor("#ce9b2c"));`
ColorDrawable colorDrawable = new ColorDrawable(0xFFCE9B2C);
Note il y a 8 chiffres hexadécimaux, pas 6 chiffre hexadécimal,laquelle aucun travail. Cas, tous les
ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(mContext,R. de la couleur.default_color));
La sélection jusqu'à vous!
int color = Color.HSVToColor(new float[]{...})
et ensuite utiliser ci-dessus .Disons que nous avons une couleur #8080000.
1) Hex int conversion
2) mettre en arrière-plan