在我的应用程序中,我创建了 5 个活动文件对应于 5 个 xml 文件。现在在第一个活动中,我放置了一个按钮,该按钮导航到另一个活动,我可以从中选择一个图像。现在我希望选择的图像是附加在整个应用程序的背景中。我该怎么办?请建议我..
问问题
5645 次
4 回答
6
这是为您的应用程序设置一个通用背景的方法,根据您的要求对其进行修改。
制作自己的风格如下:
<style name="Background" parent="@android:style/Theme.NoTitleBar">
<item name="android:windowBackground">@android:color/black</item>
<item name="android:windowNoTitle">true</item>
现在在清单文件中这样做:
<application android:theme="@style/Background"/>
这是主题更新的全局方法,在每个活动中的 setContentView 之前使用您的活动上下文调用此方法
公共静态无效setTheme(上下文上下文){
SharedPreferences pref=context.getSharedPreferences("preference",0);
int position= pref.getInt("BackgroundPosition", 0);
switch (position) {
case 0:
context.setTheme(R.style.Background0);
break;
case 1:
context.setTheme(R.style.Background1);
break;
case 2:
context.setTheme(R.style.Background2);
break;
case 3:
context.setTheme(R.style.Background3);
break;
case 4:
context.setTheme(R.style.Background4);
break;
}
}
谢谢
于 2013-05-24T08:46:03.087 回答
0
我得到了自己问题的解决方案:-
public static void setHomeSafeTheme(Context context) {
SharedPreferences pref=context.getSharedPreferences(HomeSAFEPref.HomeSAFEPref,0);
int position= pref.getInt("BackgroundPosition", 0);
switch (position) {
case 0:
context.setTheme(R.style.Background0);
break;
case 1:
context.setTheme(R.style.Background1);
break;
case 2:
context.setTheme(R.style.Background2);
break;
case 3:
context.setTheme(R.style.Background3);
break;
case 4:
context.setTheme(R.style.Background4);
break;
}
}
于 2013-05-24T11:12:18.027 回答
0
保存背景图像名称(如果您想要相同的图像,即使在应用程序死后也可以使用 SharedPreferences。
在每个活动中动态加载它。
LinearLayout ll = (LinearLayout) findViewById(R.id.blayout);
//This function will change background drawable, so place it where you want.
ll.setBackgroundDrawable(yourDrawableID);
于 2013-05-24T08:42:47.370 回答
0
Lazy Ninja 的回答似乎不错。但是如果你想要一些不同的东西,你可以试试这个。
免责声明:这只是一个实验性解决方案。以前没试过。所以在实施前需要确定
创建一个基本活动并扩展所有活动,您可以在其中设置活动的根布局。在 oncreate 中设置布局。在 BaseActivity 中覆盖 onresume。在 onresume 中,根据忍者建议的设置页面的共享偏好设置背景图像
代码示例
public class BaseActivity extends Activity{
private ViewGroup root;
onResume(){
root.setBackgroundImage();
}
public void setRoot(ViewGroup v){
root = v;
}
}
class A extends BaseActivity{
onCreate(Bundle b){
....
setRoot(pass the root view);
......
}
于 2013-05-24T08:54:25.893 回答