J'ai un entier qui a été généré à partir d'un android.graphics.Color
Le nombre entier a une valeur de -16776961
Comment convertir cette valeur en une chaîne hexadécimale au format #RRGGBB
Autrement dit: je voudrais sortir # 0000FF de -16776961
Remarque: je ne veux pas que la sortie contienne un alpha et j'ai également essayé cet exemple sans succès
Réponses:
Le masque garantit que vous n'obtenez que RRGGBB, et le% 06X vous donne un hexadécimal zéro (toujours 6 caractères):
la source
Essayez Integer.toHexString ()
Source: En Java, comment puis-je convertir un tableau d'octets en une chaîne de chiffres hexadécimaux tout en conservant les zéros en tête?
la source
0x000000FF
, ou0xFF0000FF
si vous supprimez l'alpha.Je crois que j'ai trouvé la réponse, ce code convertit l'entier en une chaîne hexadécimale et supprime l'alpha.
Notez que n'utilisez ce code que si vous êtes sûr que la suppression de l'alpha n'affectera rien.
la source
0x00FFFFFF
par ce biais, il se bloqueraColor.parseColor
.Voici ce que j'ai fait
Merci les gars, vos réponses ont fait le truc
la source
0x00FFFFFF
-> "FFFFFF" (pas d'alpha). La deuxième variante ne fonctionne pas pour0x00000FFF
-> "F" (bits manquants).String.format("#%08X", intColor)
Valeur entière de la couleur ARGB en chaîne hexadécimale:
Chaîne hexadécimale à la valeur entière de la couleur ARGB:
la source
Avec cette méthode Integer.toHexString , vous pouvez avoir une exception de couleur inconnue pour certaines couleurs lorsque vous utilisez Color.parseColor.
Et avec cette méthode String.format ("#% 06X", (0xFFFFFF & intColor)) , vous perdrez la valeur alpha.
Je recommande donc cette méthode:
la source
la source
Si vous utilisez,
Integer.toHexString
vous vous retrouverez avec des zéros manqués lorsque vous convertirez des couleurs comme0xFF000123
. Voici ma solution basée sur kotlin qui ne nécessite ni classes spécifiques Android ni Java. Vous pouvez donc également l'utiliser dans un projet multiplateforme:la source