2012-09-13 3 views
2

가능한 중복 :
How to convert a color integer to a hex String in Android?어떻게 색을 16 진수로 변환합니까?

int c = bitmap.getPixel(x, y); 

예를 들어 녹색을 위해 -14438067 같은 7 또는 8 자리 숫자를 반환합니다.

16 진수로 변환하거나 의미있는 것으로 변환하는 방법은 무엇입니까? 나는 parseColor를 시도했지만 "not a color ..."를 얻습니다.

+0

http://developer.android.com/reference/android/graphics/Color.html에서 "색상은 4 바이트로 구성된 압축 된 정수로 표시됩니다 : 알파, 레드, 그린, 블루 ... 컴포넌트 (빨간색 << 16) | (녹색 << 8) | 파란색으로 저장됩니다. 각 구성 요소의 범위는 0과 0.255 사이이며, 해당 구성 요소에 대한 기여도가 없음을 의미하고 255는 100 % 기여도를 의미합니다. ". – mbeckish

답변

1

Color 클래스에서 정적 메서드를 사용할 수 있습니다. (여기에서 찾을 수 있습니다 : http://developer.android.com/reference/android/graphics/Color.html)

빨간색, 파란색, 녹색 및 알파 개별 구성 요소를 개별적으로 추출 할 수 있습니다. (각각 color.red (int color), Color.blue (int color), Color.green (int color) 및 Color.alpha (int Color) 메서드를 사용합니다.

Integer.toString)는 해당 구성 요소의 16 진 문자열 표현을 가져옵니다.

+0

구성 요소가 (alpha << 24) |로 지정되므로 비트 이동을 사용할 수도 있습니다. (빨간색 << 16) | (녹색 << 8) | 푸른. (color >> 8) & 0xFF는 녹색으로 표시됩니다. 나는 방금 사용하는 방법을 더 분명히 찾았습니다. –

+0

getPixel()에서 해당 번호를 이미 받았습니다. – code511788465541441

+0

@ user521180 개별 구성 요소가있는 경우 Integer.toString (c, 16)을 사용하여 Lukas의 대답에서 제안한대로 16 진수 문자열로 변환 할 수 있습니다. –

관련 문제