2014-12-30 5 views
1

CalendarContract를 통해 쿼리 할 때 이벤트의 텍스트 색을 찾으려면 어떻게합니까? DISPLAY_COLOR라는 열이 있음을 알 수 있습니다.이 열은 배경색을 안정적으로 제공합니다. 캘린더 콘트랙트 테이블의 어디에서나 텍스트 색상에 대한 열을 볼 수 없습니다.CalendarContract를 사용하여 텍스트 색상을 결정하는 방법은 무엇입니까?

주식 캘린더의 팔레트 선택 사항에 따라 흰색 텍스트가 모두 작동해야합니다. 그러나 "흰색"을 하드 코딩하는 것은 잘못되었습니다.

더 좋은 아이디어가 있습니까?

+0

CalendarContract.Colors 클래스로 해봤습니까? TYPE_EVENT 필드가있는 것처럼 보입니다 : 이것은 이벤트에 사용할 수있는 색상을 나타냅니다. – AADProgramming

답변

1

텍스트 색상을 설정하고 불러올 수있는 방법이 없다고 생각합니다. 내가 일을 끝낸 것은 휘도 알고리즘을 사용하는 것입니다. 내가 사용한 것은 매우 간단합니다 :

// from CalendarContract.Instances.CONTENT_URI; 
    int backgroundColor = cursor.getInt (getColumnIndexInstances.DISPLAY_COLOR)); 
    int b = backgroundColor & 0xFF; 
    int g = (backgroundColor >> 8) & 0xFF; 
    int r = (backgroundColor >> 16) & 0xFF; 
    int a = (backgroundColor >> 24) & 0xFF; 
    int y = (3*r + 6*g + 2*b)/11; 
    int textColor = (y < 128) ? Color.WHITE : Color.BLACK; 
0

이상적으로, CalenderContract의 표시 색상은 기본적으로 흰색입니다. 열 색상을 조정하려면 쿼리 내에서 하드 코딩해야합니다. html/css 색상 코드를 사용하여 사용하려는 색상을 결정할 수 있습니다.

+0

기본 텍스트 색이 흰색을 의미하는 것을 어떻게 알 수 있습니까? 레퍼런스가 있으십니까? –

관련 문제