2013-06-16 1 views
0

textView에서 텍스트 색상을 가져 와서 비교하고 다른 작업을 수행하려고합니다. 당신이 볼 수 있듯이TextView의 getCurrentTextColor가 이상한 색을 반환합니다.

if (tvTitle.getCurrentTextColor() == -48060){ 
    isAccepted = 1; 
} 

, 그 순간에 나는이 반환 무엇 getCurrentTextColor() 때문에 "-48060"로 비교했습니다.

원래 색상은 제가했습니다 ff4444를 얻을 수있는 방법이 -48060을 구문 분석하는 마십시오 #의 ff4444

입니까?

감사합니다.

+0

Color 클래스는 문자열을 구문 분석하는 정적 메소드가 있습니다. –

+1

16 진수 값의 앞부분에있는 "F"(또는 특히 이진 값의 앞에 오는 "1")은 음의'int'를 나타냅니다. –

답변

3

그냥 부호없는 정수로 처리하십시오.

저는 실제 색상이 0xffff4444 인 것을 99 %로 긍정적으로 생각합니다. 두 개의 "f"는 알파 용입니다. 가장 중요한 비트가 설정됩니다. 즉, 값이 int로 해석되면 음수 값이됩니다. 부호없는 int로 변환하면 양수가 다소 커집니다.

당신이 원하는 모든 코드에서처럼 값을 비교하는 경우

은 또한 예를 들어, 거기에 16 진수 값을 넣을 수 있습니다 :

if (tvTitle.getCurrentTextColor() == 0xff4444){ 
    isAccepted = 1; 
} 
+0

시도해보십시오. – Reinherd

+0

완벽하게 작동했습니다. 감사합니다 – Reinherd

+0

문제 없습니다. 기꺼이 도와 드리겠습니다. – Losiowaty

관련 문제