android中怎么实现动态设置背景图片的功能,我在网上搜到的只能设置到当前的页面,并不能实现设置到全部
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中怎么实现动态设置背景图片的功能,我在网上搜到的只能设置到当前的页面,并不能实现设置到全部相关的知识,希望对你有一定的参考价值。
不能设置到全部的页面中,而且网上搜到的设置到当前的页面,当我关闭重新运行,它又会自动跳回原始的背景图片。谁能指教一下?
当关闭重新运行,它又会自动跳回原始的背景图片。
在开发过程中,由于使用模拟器测试了程序,在首次运行后会将res文件夹下的图片资源文件(如drawable-hdpi、drawable-ldpi和drawable-mdpi)拷贝到bin文件夹下。在替换资源图片后,eclipse并不清楚是否有图片改变,所以会使用原来bin下的res文件夹中的资源文件进行打包,而图片用的还是第一次eclipse所拷贝进去的文件,所以当运行程序后会发现替换资源图片在程序中没起作用。
解决办法:每次运行前,清理项目
动态设置背景图片代码
private int i=0;//全局变量定义,初始化
//list数组接收到从文件中读取到的数据
List<String> list=readTxt.getDierguanResource();
//changeBack这个函数用来动态设置背景图片
public void changeBack(int background)
main=(LinearLayout) findViewById(R.id.shizi);
String a=list.get(background);
//获取到的背景图片名as (图片存到res/drawable文件下)
String as = a.split(" ")[1];
//动态获取图片getResources().getIdentifier(as,"drawable",getPackageName())
int resID=getResources().getIdentifier(as,"drawable",getPackageName());
//设置页面背景setBackgroundResource()
main.setBackgroundResource(resID);
if(i>=0&&i<list.size())
changeBack(i);
参考技术A 有些Activity都没有加载,没有实例化当然会NullPointerException了。反过来,将图片写成一个配置里面,比如bgimage = "/sdcard/app/images/gb.png"
这样,每个Activity都会去读取这个配置,就可以设置这张图片到背景。
SharePreference类可以读写配置信息。追问
不是很理解你说的,能说具体点吗?谢谢
追答 // 将背景图片文件路径信息写入配置:SharedPreferences sp = getSharedPreferences("bg_setting", 0);
sp.edit().putString("background", "/sdcard/myapp/images/flower.png");
sp.edit().commit();
// 读取配置
String bg_img = sp.getString("background", "/sdcard/myapp/images/bg_default.png");
// 设置背景
setBackground(bg_img);本回答被提问者和网友采纳 参考技术B 数据库 OK?追问
你是说把图片存到数据库里?我是把图片放在数组中,当我将当前浏览的图片设置为所有界面的背景图片时,运行报空指针异常!不知道为什么?
以上是关于android中怎么实现动态设置背景图片的功能,我在网上搜到的只能设置到当前的页面,并不能实现设置到全部的主要内容,如果未能解决你的问题,请参考以下文章