更改设置中的背景颜色

时间:2014-05-09 10:49:02

标签: android settings

我正在尝试在我的应用中进行设置活动,我想知道如何进行允许用户更改背景颜色的首选项。

我已经完成了设置活动,当用户点击“颜色”选项时,我正在考虑进行子集化,该选项显示用户可以设置的各种颜色(或者更好,使用所有颜色的调色板)可用的颜色)。

我怎么能意识到这一点?

1 个答案:

答案 0 :(得分:1)

如果您已经创建了设置活动,那么它将类似于此

public class NormalSettingsActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.normal_preferences);
    }
}

在您的首选项xml添加首选项类别

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory android:title="Background Color Settiongs" >
        <ListPreference
            android:defaultValue="#111111"
            android:entries="@array/colorName"
            android:entryValues="@array/colorCode"
            android:key="background_color"
            android:summary="Set background color of app"
            android:title="Colors" />
    </PreferenceCategory>
</PreferenceScreen>

然后在values文件夹中创建一个名为arrays的xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="colorName">
        <item name="0">Red</item>
        <item name="1">Black</item>
        <item name="2">Yellow</item>
        <item name="3">White</item>
    </string-array>
    <string-array name="colorCode">
        <item name="0">#ff0000</item>
        <item name="1">#111111</item>
        <item name="2">#ffff33</item>
        <item name="3">#ffffff</item>
    </string-array>
</resources>

然后在您的活动中,只需使用

设置背景颜色
backgroundLayout.setBackgroundColor(Color.parseColor(mPreferenceManager.getDefaultSharedPreferences().getString("background_color", "#111111")));

这里 “background_color”来自首选项xml(android:key =“background_color”)

“#111111”是未找到匹配项时将设置的默认颜色

不要忘记创建全局变量

protected PreferencesManager mPreferenceManager;

并在onCreate中初始化,如

mPreferenceManager = PreferencesManager.instance(this);
相关问题