Android java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@

本文探讨Bitmap在Android开发中常见的内存问题,分享如何通过Bitmap.createScaledBitmap进行图片压缩以避免outofmemoryerror,以及使用BitmapDrawable时的注意事项,确保图片正常显示而不引发错误。
Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

一、Bitmap经常会遇到的问题。

 二、使用注意事项

mImageVew = (ImageView) findViewById(R.id.imageView);


Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.pic);
 
//Bitmap.createScaledBitmap 以后原有的bitmap 可以recycle 了,不然会引起outofmemoryerror
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
 
//BitmapDrawable 创建以后如果要是用的话,构造方法里面的bitmap 千万不要recycle 如果recycle 了就会报错
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), scaledBitmap);
 
bitmap.recycle();
//scaledBitmap.recycle();
 
mImageVew.setImageBitmap(bitmapDrawable.getBitmap());
//scaledBitmap.recycle();

探索,证实bitmap如果被用到视图上显示,那么这个bitmap一定不能进行回收,否则即使当时没报错,关闭屏幕回来 或者调用buildCache方法还是会报错,如果觉得bitmap过大,应该之前就进行压缩处理。

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值