it-swarm.com.de

Wie konvertiert man eine Farb-Ganzzahl in einen Hex-String in Android?

Ich habe eine Ganzzahl, die aus einem Android.graphics.Color generiert wurde.

Die Ganzzahl hat einen Wert von -16776961

Wie konvertiere ich diesen Wert in einen Hex-String mit dem Format #RRGGBB

Einfach ausgedrückt: Ich möchte # 0000FF von -16776961 ausgeben

Hinweis: Ich möchte nicht, dass die Ausgabe ein Alpha enthält, und ich habe dieses Beispiel ohne Erfolg versucht

167
Bosah Chude

Die Maske stellt sicher, dass Sie nur RRGGBB erhalten, und mit% 06X erhalten Sie ein mit Nullen aufgefülltes Hex (immer 6 Zeichen lang):

String hexColor = String.format("#%06X", (0xFFFFFF & intColor));
407
Josh
48
ming_codes

Ich glaube, ich habe die Antwort gefunden. Dieser Code konvertiert die Ganzzahl in eine Hex-Zeichenfolge und entfernt das Alpha.

Integer intColor = -16895234;
String hexColor = "#" + Integer.toHexString(intColor).substring(2);

Hinweis Verwenden Sie diesen Code nur, wenn Sie sicher sind, dass das Entfernen des Alphabets nichts beeinflusst.

18
Bosah Chude

Hier ist was ich getan habe

 int color=//your color
 Integer.toHexString(color).toUpperCase();//upercase with alpha
 Integer.toHexString(color).toUpperCase().substring(2);// uppercase without alpha

Danke Jungs ihr habt das Ding gemacht

7
Diljeet

Mit dieser Methode Integer.toHexString können Sie bei Verwendung von Color.parseColor für einige Farben eine Unbekannte Farbausnahme haben.

Und mit dieser Methode String.format ("#% 06X", (0xFFFFFF & intColor)) verlieren Sie den Alpha-Wert.

Also empfehle ich diese Methode:

public static String ColorToHex(int color) {
        int alpha = Android.graphics.Color.alpha(color);
        int blue = Android.graphics.Color.blue(color);
        int green = Android.graphics.Color.green(color);
        int red = Android.graphics.Color.red(color);

        String alphaHex = To00Hex(alpha);
        String blueHex = To00Hex(blue);
        String greenHex = To00Hex(green);
        String redHex = To00Hex(red);

        // hexBinary value: aabbggrr
        StringBuilder str = new StringBuilder("#");
        str.append(alphaHex);
        str.append(blueHex);
        str.append(greenHex);
        str.append(redHex );

        return str.toString();
    }

    private static String To00Hex(int value) {
        String hex = "00".concat(Integer.toHexString(value));
        return hex.substring(hex.length()-2, hex.length());
    }
3
Simon

Ganzzahliger Wert der ARGB-Farbe in hexadezimaler Zeichenfolge:

String hex = Integer.toHexString(color); // example for green color FF00FF00

Hexadezimaler String in Ganzzahl für die ARGB-Farbe:

int color = (Integer.parseInt( hex.substring( 0,2 ), 16) << 24) + Integer.parseInt( hex.substring( 2 ), 16);
1
Style-7
String int2string = Integer.toHexString(INTEGERColor); //to ARGB
String HtmlColor = "#"+ int2string.substring(int2string.length() - 6, int2string.length()); // a stupid way to append your color
0
chundk