android中怎么实现动态设置背景图片的功能,我在网上搜到的只能设置到当前的页面,并不能实现设置到全部

不能设置到全部的页面中,而且网上搜到的设置到当前的页面,当我关闭重新运行,它又会自动跳回原始的背景图片。谁能指教一下?... 不能设置到全部的页面中,而且网上搜到的设置到当前的页面,当我关闭重新运行,它又会自动跳回原始的背景图片。谁能指教一下? 展开
 我来答
匿名用户
2019-12-03
展开全部

当关闭重新运行,它又会自动跳回原始的背景图片。

在开发过程中,由于使用模拟器测试了程序,在首次运行后会将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);

}

匿名用户
推荐于2016-09-21
展开全部
有些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);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alongstonger
2013-10-07
知道答主
回答量:5
采纳率:0%
帮助的人:6630
展开全部
数据库 OK?
追问
你是说把图片存到数据库里?我是把图片放在数组中,当我将当前浏览的图片设置为所有界面的背景图片时,运行报空指针异常!不知道为什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式