我正在嘗試在我的應用中進行設置活動,我想知道如何執行允許用戶更改背景顏色的首選項。在設置中更改背景顏色
我已經完成設置活動,並且當用戶點擊「顏色」選項時,我正在考慮進行子集設置,該選項顯示用戶可以設置的各種顏色(或者甚至更好,使用調色板所有可用的顏色)。
我怎麼能意識到這一點?
我正在嘗試在我的應用中進行設置活動,我想知道如何執行允許用戶更改背景顏色的首選項。在設置中更改背景顏色
我已經完成設置活動,並且當用戶點擊「顏色」選項時,我正在考慮進行子集設置,該選項顯示用戶可以設置的各種顏色(或者甚至更好,使用調色板所有可用的顏色)。
我怎麼能意識到這一點?
好,如果你已經創建了設置的活動,它會在你的喜好XML類似這樣
public class NormalSettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.normal_preferences);
}
}
添加一些類優先這樣
<?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>
然後在值文件夾中創建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>
然後在您的活動中,只需設置backgroun使用
backgroundLayout.setBackgroundColor(Color.parseColor(mPreferenceManager.getDefaultSharedPreferences().getString("background_color", "#111111")));
這裏 「BACKGROUND_COLOR」 d顏色從喜好XML來(機器人:鍵= 「BACKGROUND_COLOR」)
「#111111」 是如果沒有找到匹配
將要設置一些默認的顏色不要忘記創建一個全局變量
protected PreferencesManager mPreferenceManager;
和的onCreate初始化,如
mPreferenceManager = PreferencesManager.instance(this);
我不我不知道如何謝謝你,你的回答不僅僅是完整的,謝謝你。 我只是想指出的是,最後的程序,使後臺工作,對我來說沒有工作,所以我做了這個 '的RelativeLayout RL =(RelativeLayout的)findViewById(R.id.container); \t \t \t \t SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); \t \t int bgc = Color.parseColor(sharedPref.getString(「background_color」,「#000000」)); \t \t rl.setBackgroundColor(bgc); ' 問題是,如果我從屏幕上退出箭頭,從設置 – Solaire
我面臨同樣的問題,則不應用背景。這裏的技巧是在activity的onResume方法中調用setbackground方法。並感謝我,你可以隨時接受我的回答:-) – Kaustuv
哦,對了,答案是如此明顯!非常感謝,我馬上接受;) – Solaire
請參閱本作調色板http://stackoverflow.com/questions/2442407/android-color-picker – Sripathi
@Sripathi感謝你的鏈接,但我一直無法理解其導遊 – Solaire