【发布时间】:2015-06-26 00:55:30
【问题描述】:
我遇到了问题。
我正在将 9 drawables 动态加载到 9 imageViews 中。 (drawables 每次都不同)drawable id 存储在对象类中,所以当我加载这个drawable 时,我使用imageView.setImageRessource(myObject.getRessourceId()); 将ImageRessource 设置为imageView
一切正常,但是当加载 9 个可绘制对象时,我在 Android 内存监视器上看到分配内存达到 80MB,我认为这不正常......(是吗?)
我尝试了不同的方法来解决它:
- 使用 Picasso 库加载可绘制对象。
- 使用
BitmapFactory.decodeResssource创建位图,然后 在 imageView 上设置ImageBitmap。
使用我尝试的所有技术,它占用了 80MB 的分配内存。
我尝试在 ldpi (~30Ko/image) 和 xhdpi (~87Ko/image) 中使用不同的图像分辨率,但它不会改变加载的每个图像的任何内容,它需要大约 5MB 的分配内存...
所以我的问题是:如何减少为这些图像分配的内存?
提前谢谢你,如果需要,我可以提供部分代码。
问候
PS:ImageViews 是在onCreate() 方法中动态创建的。
【问题讨论】:
-
加载缩小的图像而不是原始图像,你能分享代码吗?
标签: android performance memory drawable