方法一: 在从网络或本地加载图片的时候,只加载缩略图。
这个方法的确能够少占用不少内存,可是它的致命的缺点就是,因为加载的是缩略图,所以图片失真比较严重,对于对图片质量要求很高的应用,可以采用下面的方法。 方法二: 运用JAVA的软引用,进行图片缓存,将经常需要加载的图片,存放在缓存里,避免反复加载。 如果一个对象只具有软引用,若内存空间足够则不会回收它;若不足则会回收该对象的内存。软引用可用来实现内存敏感的高速缓存。 软引用可以与一个引用队列联合使用。如果软引用所使用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加到与之相关的引用队列中去。以下是实现的一个图片缓存的工具类。
在程序代码中调用该类: imageView.setImageBitmap(bmpCache.getBitmap(R.drawable.kind01, this)); 这样当你的imageView需要来回变换背景图片时,就不需要再重复加载。 方法三: 及时销毁不再使用的Bitmap对象。 if (bitmap != null && b!itmap.isRecycled()){ bitmap.recycle(); bitmap = null; // recycle()是个比较漫长的过程,设为null,然后在最后调用System.gc(),效果能好很多 } System.gc();
转载地址:http://www.360doc.com/content/13/0409/11/7857928_277107102.shtml |
android加载大量图片内存溢出的三种解决办法
最新推荐文章于 2021-05-29 13:17:27 发布