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); 展开
//已经通过图库获取了图片的路径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); 展开
2015-06-10 · 知道合伙人软件行家
关注
展开全部
Bitmap img = BitmapFactory.decodeFile(BackgroundPath);
执行这行代码的时候,抛出的异常,估计是报内存溢出
原因很简单,Bitmap 是用字节来代码像素点的
如果你的图片非常大,那么android需要创建一个非常大的数组来生成bitmap对象
这时候就会抛出异常
建议你创建Bitmap前,先测试一下图片的大小,把图片的大小压缩成屏蔽的大小
再用来做layout的Background
执行这行代码的时候,抛出的异常,估计是报内存溢出
原因很简单,Bitmap 是用字节来代码像素点的
如果你的图片非常大,那么android需要创建一个非常大的数组来生成bitmap对象
这时候就会抛出异常
建议你创建Bitmap前,先测试一下图片的大小,把图片的大小压缩成屏蔽的大小
再用来做layout的Background
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询