2012-02-18 3 views
1

테마에 대해 여러 개의 styles.xml 파일 (물론 다른 이름)이 있다고 가정 해 보겠습니다. 앱에서 가져올 파일을 선택할 수 있습니까?스타일 전환

화이트 스타일 :

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="mybutton"> 
     <item name="android:layout_width">45dp</item> 
     <item name="android:layout_height">fill_parent</item> 
     <item name="android:textColor">#202020</item> 
     <item name="android:textSize">20dp</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:background">@drawable/white_btnbg</item> 
    </style> 

... 

블랙 스타일 :

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="mybutton"> 
     <item name="android:layout_width">45dp</item> 
     <item name="android:layout_height">fill_parent</item> 
     <item name="android:textColor">#FFFFFF</item> 
     <item name="android:textSize">20dp</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:background">@drawable/black_btnbg</item> 
    </style> 

... 

그럼, 내 레이아웃 XML에 내 모든 버튼의 스타일 "을 myButton"에와 사용자가이를 선택하는 테마 따라 설정됩니다 조정 파일에서 가져옵니다. 런타임에보기의 스타일을 변경할 수 없으므로 이렇게 할 수 있습니까? 아니면 스타일을 바꾸는 더 좋은 방법이 있을까요?

답변

0

다른 이름으로 여러 스타일을 사용하십시오. 그런 다음 backGround를 프로그래밍 방식으로 설정할 수 있습니다.

Button b = new Button(this); 
b.setBackgroundResource(R.drawable.blabla); 
+0

나는 알고 있지만, 그 질문은 아닙니다. – bwoogie

+0

런타임에는 스타일을 변경할 수 없지만보기에서 사용하는 스타일은 변경할 수 있습니다. 따라서 여러 스타일을 사용할 수 있으며 런타임에 어느 스타일을 사용할지 프로그래밍 방식으로 결정할 수 있습니다. – Murat

+0

정성스럽게 신경 쓰시겠습니까? – bwoogie

관련 문제