Je reçois des valeurs de couleur hexadécimales d'un serveur (sous cette forme, #xxxxxx
, Exemple #000000
Pour le noir)
Comment puis-je convertir cela en une valeur entière?
J'ai essayé de faire Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))
pour obtenir un résultat encore plus hextastique 0x000000
, Mais ce n'est pas interprété comme un int
ici, d'autres suggestions?
Je reçois une erreur: 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): Java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer
J'utilise le SDK Android SDK) pour leur fonction setBackgroundColor(int color)
, qui prend - comme vous l'avez peut-être deviné - une valeur de couleur entière.
Voici l’OPPOSITE de cette question: Comment convertir un entier de couleur en une chaîne hexadécimale sous Android?
La vraie réponse est d'utiliser:
Color.parseColor(myPassedColor)
sous Android, myPassedColor
étant la valeur hex
comme #000
ou #000000
ou #00000000
.
Cependant, cette fonction ne supporte pas les valeurs hexadécimales abrégées comme #000
.
Integer.parseInt(myString.replaceFirst("#", ""), 16)
La réponse est vraiment simple, en Android si vous voulez convertir une couleur hexadécimale en int, utilisez simplement Android Couleur classe, exemple montré ci-dessous
c'est pour la couleur gris clair
Color.parseColor("#a8a8a8");
C'est ça et vous obtiendrez votre résultat.
J'ai le même problème que j'ai trouvé de la couleur sous la forme de #AAAAAA
et je veux convertir cela en une forme que Android pourrait utiliser. J'ai découvert que vous pouvez simplement utiliser 0xFFAAAAAA
pour que Android puisse automatiquement indiquer la couleur. Notez que le premier FF
indique la valeur alpha
. J'espère que cela vous aidera
Je faisais face au même problème. De cette façon, j'ai pu le résoudre. Comme CQM l'a dit, l'utilisation de Color.parseColor () est une bonne solution à ce problème.
Voici le code que j'ai utilisé:
this.Button_C.setTextColor(Color.parseColor(prefs.getString("color_prefs", String.valueOf(R.color.green))));
Dans ce cas, mon objectif était de changer la couleur du texte du bouton (Button_C) lorsque je modifiais la sélection de couleur à partir de mes préférences (color_prefs).
La vraie réponse est la plus simple et la plus facile ....
String white = "#ffffff";
int whiteInt = Color.parseColor(white);
Basé sur les CQM réponse et sur ovokerie-ogbetaréponse à une autre question J'ai trouvé cette solution:
if (colorAsString.length() == 4) { // #XXX
colorAsString = colorAsString.replaceAll("#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])", "#$1$1$2$2$3$3");
}
int color = Color.parseColor(colorAsString);
Essayez ceci, créez drawable dans votre ressource ...
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<solid Android:color="@color/white"/>
<size Android:height="20dp"
Android:width="20dp"/>
</shape>
puis utilisez ...
Drawable mDrawable = getActivity().getResources().getDrawable(R.drawable.bg_rectangle_multicolor);
mDrawable.setColorFilter(Color.parseColor(color), PorterDuff.Mode.SRC_IN);
mView1.setBackground(mDrawable);
avec la couleur ... "#FFFFFF"
si la couleur est transparente, utilisez ... setAlpha
mView1.setAlpha(x);
avec x float 0-1 Ej (0.9f)
Bonne chance