我一直在做一个动态壁纸,并最终成功为止,但现在我想,让用户选择他们想有我在绘制文件夹的背景。 我一直在尝试一些东西,但迄今为止没有运气通过这一点。 我有一个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