Hexadezimal ist nur eine Zeichenfolge Darstellung.
Ein int
ist immer noch 4 Bytes. Die dritte Byte bildet den G Teil:
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
A R G B
Neben R, G & B, eine Farbe hat auch eine A genannt Alpha-Komponente, die Transparenz anzeigt.
Es gibt verschiedene Möglichkeiten, um die verschiedenen Teile zu isolieren:
(RGBColor << 8) >> 24 or (RGBColor >> 16) & 0xFF
die R isolieren
(RGBColor << 16) >> 24 or (RGBColor >> 8) & 0xFF
das G
(RGBColor << 24) >> 24 or RGBColor & 0xFF
wird isolieren die B
isolieren
Hier ist ein funktionierendes Beispiel: Sie haben uint
uint RGB = 0xAA3080;
uint R = RGB <<8>> 24; //170
uint G = RGB <<16>> 24; //48
uint B = RGB <<24>> 24; //128
sind Sie sicher über R benutzen? es ist -128 in meinem Fall – Byyo
Wenn das erste Bit 1 ist, wird die rechte Verschiebung alle verschobenen Bits mit 1 füllen. Ich denke '(RGBColor >> 16) & 0xFF' ist die bessere Option. Es wird funktionieren wie es soll. –