通过复选框ONCLICK更改Android应用程序主题



我是一个新的Android开发人员,我正在研究一个项目,我想在我的一个应用程序中的一个设置中以自定义的颜色主题作为选项。我有四个复选框,将其称为Checkbox1,Checkbox2,Checkbox3,Checkbox4。我的样式中还有四种自定义样式。xml文件,将其称为them1,them2,theme3,theme4。这是我的.java文件编码,内容涉及处理这些复选框的单击:

checkBoxListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(blueCheckBox.isChecked()){
                //Change theme to blue
            }
            if(redCheckBox.isChecked()){
                //Change theme to red
            }
            if(greenCheckBox.isChecked()){
                //Change theme to green
            }
            if(bwCheckBox.isChecked()){
                 //Change theme to Black & White
            }
        }
    };
    blueCheckBox.setOnClickListener(checkBoxListener);
    redCheckBox.setOnClickListener(checkBoxListener);
    greenCheckBox.setOnClickListener(checkBoxListener);
    bwCheckBox.setOnClickListener(checkBoxListener);
}

如何将整个应用程序的样式设置为我在这些语句中的相应的自定义声明样式?谢谢您的宝贵时间,感谢您提供的任何帮助。

为此,您必须在/style/

下创建一些主题

例如:

<resources>
    <style name="LightTheme" parent="@android:style/Theme.Light">
    </style>
    <style name="BlackTheme" parent="@android:style/Theme.Black">
    </style>    
</resources>

,在Java侧您可以使用它,例如...

if (lightThemeCheckBox.isChecked()) {
    getApplication().setTheme(R.style.LightTheme);
} else {
    getApplication().setTheme(R.style.BlackTheme);
}

我希望这对您有帮助。

有关更多信息,请访问此链接:http://www.anddev.org/applying_a_theme_to_your_application-t817.html

嗨,您可以通过设置复选框的背景为复选框提供按下:

代码下方是用于复选框的后排XML文件:name as chackbox_selection.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/check_active_320" android:state_checked="true" android:state_focused="true"/>
<item android:drawable="@drawable/check_inactive_320" android:state_checked="false" android:state_focused="true"/>
<item android:drawable="@drawable/check_inactive_320" android:state_checked="false"/>
<item android:drawable="@drawable/check_active_320" android:state_checked="true"/>

在这里,您发现有可绘制的资源,例如check_active_320,当用户在复选框和check_inactive_320上检查了未检查的复选框时。

将上述XML设置为复选框的代码如下:

 <CheckBox
        android:id="@+id/radioread"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textread"
        android:layout_alignBottom="@+id/textread"
        android:layout_alignParentRight="true"
        android:layout_marginRight="15dp"
        android:button="@drawable/checkbox_selection"
        android:focusable="false" />

在这里您可以找到Android:按钮作为我们样式的值。

相关内容

  • 没有找到相关文章

最新更新