2

在我的应用程序中,我创建了 5 个活动文件对应于 5 个 xml 文件。现在在第一个活动中,我放置了一个按钮,该按钮导航到另一个活动,我可以从中选择一个图像。现在我希望选择的图像是附加在整个应用程序的背景中。我该怎么办?请建议我..

4

4 回答 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 回答