android bitmap.recycle没有立即执行?

app需要添加大量图片,会经常oom,所以加了个把没用的图片及时recyle,但是好像没有立刻执行,即使使用了System.gc也是,有没有什么办法可以加快recyle速度

5个回答

Android2.3以后 不在建议采用recyle来回收bitmap 采用System.gc,回收机制也不一定会立即执行。
可以对bitmap对象进行二次采样处理来压缩图片的大小来从根本上解决图片oom的问题。
BitmapFactory.Options options = new BitmapFactory.Options();
options.outWidth = 400;//动态设置图片宽
options.outHeight = 300;//动态设置图片高
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decode...//通过BitmapFactory.decode*** 使用带options的方法来重新获取到bitmap对象

现在有很多的图片加载框架都已实现,可以尝试使用Glide

建议在使用bitmap加载图片的时候 先进行压缩吧。
http://blog.csdn.net/harryweasley/article/details/51955467
可以去看看这个

lowpithed
lowpithed 我的意思是怎么才能立刻把不要的图片从内存中去掉,不是怎样可以不用oom
2 年多之前 回复

楼主:图片你压缩了吗?

lowpithed
lowpithed 我的意思是怎么才能立刻把不要的图片从内存中去掉,不是怎样可以不用oom
2 年多之前 回复

gc 是自动回收的,程序只需要确认可以回收就行了的。

lowpithed
lowpithed 怎么确认
2 年多之前 回复

楼主:你现在调用了recycle() ,就可以了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问