java - 如何通过 SharedPreferences 设置应用程序背景?

标签 java android image sharedpreferences

我希望允许用户从设置中更改我的应用程序的背景(针对 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/

相关文章:

android - 本地 boolean 值未注册

java - 如何在java中将DataFlavor[]保存为图像文件?

java - Apache Pig UDF 解析问题

java - 如何在Realm中正确写入数据?

java - 将注释插入 Android 手机上已安装的日历应用程序

iphone - 如何在 iPhone 上的 TableView 行的右侧添加图像?

image - Flutter Image.Network 和 CachedNetworkImage 不显示?

java - 如何修改程序运行直到输入某个键

java - Java 中 Canvas.drawText 从右到左

android - 在 android 中显示一个 imageview(可见和不可见)三次