Android RGBとint型の色が逆転

824 ワード

RGBをintに変換
int color=Color.rgb(red, green, blue)  

透明度が必要な場合
int color=Color.argb(a,red, green, blue)  

intをRGBに変換
int color=-4253158;  
        int red = (color & 0xff0000) >> 16;  
        int green = (color & 0x00ff00) >> 8;  
        int blue = (color & 0x0000ff);  

RGBの色パターンはそれぞれ緑と青の3種類を配当し、彼らの色の値範囲は0~255で、
他の色は、この3つの基本色の最大値で合成されます.255対応16進数Yes
1111111コードを見て
int red = (color & 0xff0000) >> 16; 

0 xff 0000の2進数は、11111111010000000000(合計24ビット)
color&0 xff 0000の意味:和を求めて演算し、1つの00000000000000000-11111111100000000000の数値を得て、
>>16の意味:16位を右に移動し、上位8位の値、つまり00000000-1111111の値を得て、対応する2進法は0-255の値です. 
コードではgreenとblueも上記の理屈で算出されます.これでrgbの3つの値が得られます