Hex-Farben in Android sind manchmal 8-stellig. Wie? Was ist der Unterschied zwischen #FFFFFF und # FFFFFF00?

81

Ich habe manchmal in Beispielen gesehen, wo das Färben in Android als # FF191919 erfolgt. Ich meine eine 8-stellige Hex-Zahl. Es sollte aber nur eine 6-stellige Zahl sein. Wie hängen sie zusammen? Wenn ich eine 6-stellige Nummer in eine 8-stellige Nummer umwandeln möchte. Wie es geht? Ich meine, konvertiere # 424242 in eine 8-stellige Zahlenfarbe? Bitte lassen Sie mich die Details wissen. Vielen Dank für Ihre Zeit und Hilfe.

Vinod
quelle

Antworten:

104

Die zusätzlichen 2 Ziffern werden verwendet, um die Farbtransparenz oder den Alphakanal zu definieren.

Android verwendet das ARGB-Format (oder AARRGGBB, wie Sie es in Ihrem Beispiel verwenden).

Weitere (Android spezifisch) Informationen einen Blick auf die Farbdokumentation

Veger
quelle
Gibt es ein gutes Programm, das Ihnen die Farben anzeigt, nachdem Sie alle 8 Ziffern eingegeben haben?
anon58192932
Es gibt eine Menge: Jede Zeichnungsanwendung mit Selbstachtung akzeptiert RGBA-Eingaben und zeigt die resultierende Farbe an. Oder suchen Sie nach "RGB-Farbwähler" oder "RGB-Farbrad", um eine Website zu finden, die diesen Service anbietet. (Hinweis: dass die Alpha-Ziffern nicht wirklich interessant sind, da sie die Transparenz definieren und die Farbe nicht beeinflussen)
Veger
1
Die Antwort allein macht nicht klar, welche diese zusätzlichen 2 Ziffern sind. die ersten beiden? die letzten zwei? zwei Ziffern irgendwo in der Mitte?
Abhishek Jain
'zusätzliche 2 Ziffern' deuten darauf hin, dass die angehängt werden (also die letzten beiden), aber ich werde die Antwort aktualisieren, um dies explizit und korrekt zu machen
Veger
46

Die ersten beiden Zeichen stellen den Alpha-Wert (Transparenzwert) dar, der FFvollständig sichtbar ist. Dies ist als aRGB bekannt.

shanethehat
quelle
1
So ist zum Beispiel #FF000000das gleiche wie #000000, was ist nur festes Schwarz?
Bruno Finger
14

8-stelliges Hex ist eine ARGB- Farbe. Es ist das gleiche wie übliches RGB , bietet jedoch einen zusätzlichen Alpha-Kanal.

#RRGGBBin RGB ist das gleiche wie #00RRGGBBin ARGB. Schauen Sie sich auch Color.argb an .

Andy
quelle
9

Ein 8-stelliges Android HEx wird als aRGB bezeichnet. aRGB-Werte werden normalerweise mit 8 hexadezimalen Ziffern ausgedrückt, wobei jedes Paar der hexadezimalen Ziffern die Werte des Alpha-, Rot-, Grün- und Blau-Kanals darstellt. Zum Beispiel steht 80FFFF00 für 50,2% undurchsichtiges (nicht vormultipliziertes) Gelb. Der 80-Hex-Wert, der 128 dezimal ist, stellt einen Alpha-Wert von 50,2% dar, da 128 ungefähr 50,2% des Maximalwerts von 255 (FF-Hex) beträgt. Um den 80FFFF00-Wert weiter zu entschlüsseln, repräsentiert der erste FF den Maximalwert, den Rot haben kann. das zweite FF ist wie das vorherige, nur für grün; Die letzte 00 stellt den Mindestwert dar, den Blau haben kann (effektiv - kein Blau). Folglich ergibt Rot + Grün Gelb. In Fällen, in denen das Alpha nicht verwendet wird, kann dies auf 6-stelliges RRGGBB gekürzt werden. Aus diesem Grund wurde das Alpha in die oberen Bits eingefügt.

Terry Miller
quelle
8

Die 8-stellige Farbe wird mit der Alpa-Stufe definiert

Lassen Sie uns alles extrahieren, was wir als Hex-Farbe definieren, als 6-Werte-Paar von RGB 2-stellig pro

1. 2-stellig für Rot, 2. 2-stellig für Grün und 3. 2-stellig für Blau. Wenn Sie den Alpha-Wert festlegen möchten, wird dieser mit der 8-stelligen ARGB definiert. Jetzt wurde der 1. 2-stellige Wert für Alpha und definiert Rest sind für die RGB

Pratik
quelle