2016-06-21 10 views
0

안드로이드 스튜디오에서 스타일 테마 색상을 사용하는 방법은 내입니다 @color/"whateverColorYouWant" 대신안드로이드 스튜디오에서 스타일 테마 색상을 사용하는 방법은 내 항목에 대한 colorPrimary처럼 @ color/whateverColorYouWant의 배경 intsted

경기 중에 테마를 변경하고보기의 모든 색상을 변경하고 싶습니다. 객체에 변수를 할당 할 수있는 방법이 있나요? @styles/colorPrimary? 그러면 @styles/colorPrimary을 변경하여이 색상이 지정된 모든 객체를 업데이트 할 수 있습니다. 이렇게하면 각 개체를 수동으로 변경하지 않고 한 번에 많은 개체를 변경할 수 있지만 대신 하나의 변수를 업데이트 할 수 있습니다.

답변

1

테마에 colorPrimary가 정의되어있는 경우 @ color/whateverColor와 동일한 방식으로 ?colorPrimary을 통해 XML로 XML에 액세스 할 수 있습니다. 물음표 (?)는 테마 속성에 대한 참조를 나타냅니다. 기존 Android 속성을 사용하는 경우 ?android:colorPrimary을 사용하는 것이 좋습니다. 이 방법으로 참조 할 수있는 자신의 속성을 attrs.xml 파일에 추가 할 수 있습니다. 코드로 테마 요소에 액세스해야하는 경우이를 수행하는 방법 중 하나입니다.

TypedValue value = new TypedValue(); 
boolean success = getContext().getTheme().resolveAttribute(android.R.attr.colorPrimary, value, true); 
int color = value.data;