2012-06-05 99 views
2

我有一个带有背景图像的android应用程序。我的目标是创建3或4个背景图像,并为用户提供更改背景的可能性。Android:使背景图像可更改

其实我有4张图片,分别是bg1.png,bg2.png,bg3.png和bg4.png。 我想过在Strings.xml中用图像的名称声明一个字符串值“background”。背景图像的名称将从背景字符串中取出,并且当用户改变背景时,这将仅改变字符串背景的值。

这个想法不错,或者有东西吗? 我怎样才能在xml布局文件中使用“背景”字符串的值设置我的布局的背景?舒尔德,我做这个编程?

谢谢。

回答

2

,如果你想改变的背景,活动的布局,我认为,你可以做到这一点使用的setBackground方法的布局,例如:

activityLayout = (LinearLayout)findViewById(R.id.tableLayout1); 
activityLayout.setBackgroundDrawable(getResources().getDrawable(R.id.somedrawable)) 

可以使用例如SharedPreference存储的背景图像,然后当您启动活动时,您会阅读包含背景的首选项。例如,当用户选择了背景:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", Context.MODE_PRIVATE); 
SharedPreferences.Editor prefsEditor = myPrefs.edit(); 
prefEditor.putInt("backgroudResourceId", userchoice); 
prefEditor.commit(); 

而当活动开始,你必须阅读从SharedPreference的RESOURCEID:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", Context.MODE_PRIVATE); 
drawableid = myPrefs.getInt("backgroundResourceId", defaultvalue); 
yourlayout.setBackground(drawableid); 

,其中默认值是默认值,如果首选项没有设置。应该初始化yourLayout(以与活动布局相同的方式)。

+0

谢谢Ivane,我知道这一点,但让我说我有20个活动,当用户设置背景图像时,如何更改它们的全部空间。 –

+0

安娜检查我的编辑。 – Ivan

+0

谢谢Ivan,现在,当用户更改背景图片并退出应用程序时。然后他会回来,会再出现一次旧的背景,而不是新的背景? –