我正在尝试找到一种有效的方法来处理从MediaStore
返回的媒体缩略图。实际上,有两种缩略图:MICRO_KIND
是方形的,具有96x96大小,独立于设备或平台;和MINI_KIND
对于风景图像大约为512x384,对于肖像图像大约为288x512,也与设备和平台无关。现在,我正在使用异步Bitmap
加载,回收和缓存的所有最佳实践,实际上当我使用MICRO_KIND
时,我的应用程序工作得很好。无论如何,这不是我想要的,特别是对于那些小图像看起来很差的平板电脑。我已经尝试过使用MINI_KIND
,但它很快就超出了内存限制,从不关注实现。另一个麻烦是肖像图像有纵向缩略图,我需要它们都是矩形景观。我已经尝试裁剪并调整Bitmaps
保持纵横比的大小,但它让我更加头疼,因为每个创建Bitmap
的操作都会创建一个副本,并且永远不会让我总是使用{{ 1}}方法,Bitmap.recycle()
一遍又一遍地杀了我。我正在寻找一种优雅且内存有效的方法来创建严格指定大小和方向的缩略图,使用从OutOfMemory
查询的那些。非常感谢任何帮助和参考。
答案 0 :(得分:2)
正如您所说,您已经使用了从裁剪到回收的所有内容,现在也尝试使用WeakReferences
。
如果这也没有帮助,那么您的代码中可能存在内存泄漏。
请在同一问题上查看我的回答:bitmap size exceeds Vm budget error android
这是一个通用的答案,尝试我提到的所有方法。其中一个应该适合你:)
谢谢。