我一直在做一個動態壁紙,並最終成功爲止,但現在我想,讓用戶選擇他們想有我在繪製文件夾的背景。 我一直在嘗試一些東西,但迄今爲止沒有運氣通過這一點。 我有一個XML文件中讀取他們可以從中選擇兩個圖像之一(我想如果我能得到一個工作,他們都應該是相同的) 下面是它的讀取到目前爲止 「DarkBack」 「MediumBackb」 「 LightBack」 Android的共享偏好選擇圖像
<string-array name="frontleft_value">
<item>"1"</item>
<item>"2"</item>
<item>"3"</item>
</string-array>bubble
所以他們選擇無論從三個背景
在活動中我有這樣的:
mPrefs = UnderwaterActivity.this.getSharedPreferences(SHARED_PREFS_NAME, 0);
mPrefs.registerOnSharedPreferenceChangeListener(this);
onSharedPreferenceChanged(mPrefs, null);
}
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
myOtherClass.myfrontleftimage = (Integer.parseInt(prefs.getString("front_sub_left_choice", "1")));
}
所以這應該給我一個1或2的整數,這取決於在livewallpaper的設置中點擊哪一個。 背景圖像被保存在一個不同的類,但首先我必須比較他們點擊了什麼,所以我嘗試了一個if/else語句,以至於沒有運氣。
我想串,但沒有工作,所以我改成了int和有一些運氣,但不是全部。
的的if else是這樣進行的。
private int chooseImage(){
int theImage = 0;
if(myfrontleftimage == 1){
theImage = R.drawable.image1;
}else if (myfrontleftimage == 2){
theImage = R.drawable.image2;
}else{
theImage = R.drawable.image3;
}
return theImage;
}
然後我把這個方法到背景圖像,以便它可以讀取它,我有一個設置的Java文件,並實施共享偏好也是發動機,但我有一種感覺它在我的if else語句中,我想要獲得偏好的價值,並且如果它們等於1,2,3,如果其中任何一個等於它們中的一個然後加載該背景圖像,則將它們進行比較,在理論上是有意義的,但在實踐中顯然不明顯,任何幫助將會很大我很感激,如果我能找出這一個,那麼我也可以用它來製作精靈,這也是我在動態壁紙中所使用的。 在此先感謝
編輯: 我發現這個問題,到目前爲止,我把在首選項文件這樣的:
<string-array name="livewallpaper_back_names">
<item>Brown</item>
<item>Grey</item>
</string-array>
<string-array name="livewallpaper_back_value">
<item>0x7f020000</item>
<item>0x7f020001</item>
</string-array>
然後在sharedpreferences文件我嘗試分析0x7f020000(我想用挑選與圖像)轉換成一個int像這樣
public void onSharedPreferenceChanged(SharedPreferences prefs,
String key)
{
sackNum = Integer.parseInt(prefs.getString("livewallpaper_back", "0x7f020000"));
}
但後來我得到這個錯誤,它不能做
E/AndroidRuntime(340): java.lang.NumberFormatException: unable to parse '0x7f020000' as integer
所以這就是我目前卡住的地方。 我檢查了日誌,數組確實通過了並且沒有任何問題,所以這就是問題出在哪裏,如果任何人都可以幫我把這個東西解析成int,我將不勝感激。 再次感謝您提前提供任何幫助。
好吧,我想通了與的testpattern例子的幫助誰使用它可以在這裏找到的十六進制代碼:http://www.codeproject.com/KB/android/AndroidLiveWallpaper.aspx – user870286