切换样式

时间:2012-02-18 22:12:26

标签: android android-theme android-styles

假设主题有多个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”,并且根据用户选择的主题,它将从协调文件中拉出。 由于无法在运行时更改视图的样式,是否可以执行此操作?或者有更好的方法(我确定有)改变风格吗?

1 个答案:

答案 0 :(得分:0)

使用具有不同名称的多个样式。然后,您可以通过编程方式设置backGround:

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