我希望允许用户从设置中更改我的应用程序的背景(针对 Main_UI Activity 类)。我无法将 uri 存储在字符串中,因为没有 startActivityForResult() 方法可以提取 Intent 的 uri(首选项仅允许启动 Intent ,最好是其他设置)(我尝试创建自定义首选项类,但再次不行startActivityForResult)。我尝试通过菜单选项来完成此操作,获取 uri 并从中创建一个可绘制对象。但是当我将该可绘制对象应用到我的relativelayout实例时,它说它仅支持超过API 16。我的是15。 任何帮助将不胜感激,因为这个机器人让我心烦意乱。
最佳答案
使用此方法支持较低版本的 API:
if (Build.VERSION.SDK_INT > 15)
yourLayout.setBackground(yourDrawable);
else
yourLayout.setBackgroundDrawable(yourDrawable);
<小时/>
使用共享首选项
在设置 Activity 中:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor edit = settings.edit();
edit.putString("bg_drawable_uri", bgDrawableUri);
edit.commit();
在主要 Activity 中:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
settings.getString("bg_drawable_uri", "default_uri");
关于java - 如何通过 SharedPreferences 设置应用程序背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25338127/