Android开发,动态设置Activity的layout背景图片问题

通过调用图库,选择一张图片后作为应用的背景图片。现在发现通过图库选择一张图片后,只有png格式的图片可以正常设置为背景图片,而如果要一开始直接选择jpg图片的话就会弹出“... 通过调用图库,选择一张图片后作为应用的背景图片。现在发现通过图库选择一张图片后,只有png格式的图片可以正常设置为背景图片,而如果要一开始直接选择jpg图片的话就会弹出“很抱歉,应用程序已经停止运行”。但是如果之前设置了一张png图片做背景,再选择一张jpg图片做背景就不会弹出这个错误。总得来说就是设置jpg图片做背景之前必须先设置过png图片做背景,否则就报错,不知道是怎么回事?以下是我设置背景图片的程序,请大神们帮帮忙!

//已经通过图库获取了图片的路径BackgroundPath,可以保证这个获取没问题
Bitmap img = BitmapFactory.decodeFile(BackgroundPath);
BitmapDrawable bd = new BitmapDrawable(img);
layout.setBackgroundDrawable(bd);//l设为背景,layout为全局变量,在onCreate()中有初始化,如下行
//layout = (LinearLayout)getLayoutInflater().inflate(R.layout.main,null);
展开
 我来答
QQMSD8
2015-06-10 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
Bitmap img = BitmapFactory.decodeFile(BackgroundPath);

执行这行代码的时候,抛出的异常,估计是报内存溢出
原因很简单,Bitmap 是用字节来代码像素点的
如果你的图片非常大,那么android需要创建一个非常大的数组来生成bitmap对象
这时候就会抛出异常
建议你创建Bitmap前,先测试一下图片的大小,把图片的大小压缩成屏蔽的大小
再用来做layout的Background
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式