应用程序设置统一背景的实现方法
在activity的xml布局文件中,最外层的布局我们在java文件里要用到,所以在那个布局中,我们要加上id。举个例子,我在测试程序中的最外层布局是LinearLayout,它的id是android:id="@+id/test",在我们的Activity里我们需要定义的变量有:
privateLinearLayoutmTestATActivityView;//最外层的布局文件
privateSharedPreferencespreferences;//数据保存
privatestaticfinalStringPREFERENCES_ID="wallperSettings";
privatestaticfinalStringWALLPER_SETTINGS=”cs2c.wallper.setting”; //用户没有进行恢复默认设置
privatestaticbooleanisSystemWallperSettings=false;
在onCreate里:
mTestATActivityView=(LinearLayout)findViewById(R.id.test);
在onResume里:
preferences=getSharedPreferences(PREFERENCES_ID,0);
isSystemWallperSettings=preferences.getBoolean(WALLPER_SETTINGS,false);
//设置壁纸
if(isSystemWallperSettings){
mTestATActivityView.setBackgroundDrawable(this.getResources().getDraw able(R.drawable.background));
}else{
mTestATActivityView.setBackgroundDrawable(getWallpaper());
}
之所以要放在onResume里,是考虑到Activity的生命周期,当我们home键退回桌面进行设置壁纸的时候,再进入程序,我们的程序背景可能没有改动。
以上都是要在我们的Activity进行处理的。
在设置里,当用户点击恢复默认背景的时候,我们的处理是这样的:
//这个preferences同样是一个变量,我们要自己定义。
SharedPreferences.Editoreditor =preferences.edit();
editor.putBoolean(WALLPER_SETTINGS,true);
editor.commit();