2012-02-18 89 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 2012-02-18 23:26:57

+0

您不能在运行时更改样式,但可以更改视图使用的样式。所以你可以使用多种风格,你可以决定在运行时使用哪一种风格。 – Murat 2012-02-18 23:32:03

+0

谨慎阐述? – bwoogie 2012-02-18 23:40:56