android中由于下载图片造成的内存溢出的解决方法
2011-12-29 14:28
441 查看
结合了网上的一些思路的说明,自己谢了个关于下载图片时防止内存的方法,如下:
http://blog.sina.com.cn/s/blog_5da93c8f0100w185.html
/** * 下载图片 * @param imageUrl 地址 * @return */ public Drawable loadImageFromNetwork(String imageUrl) { Drawable drawable = null; try { int index = imageUrl.lastIndexOf("/"); String image_name = imageUrl.substring(index + 1); // 可以在这里通过文件名来判断,是否本地有此图片 if (GlobalData.image_cache.containsKey(image_name)) { drawable = GlobalData.image_cache.get(image_name).get(); //内存不足时,将缓存区清空(当然此时因为drawable对象是软引用,所以都被回收) if(drawable==null) { GlobalData.image_cache.clear(); loadImageFromNetwork(imageUrl); } } else { drawable = Drawable.createFromStream( new URL(imageUrl).openStream(), image_name); //软引用的Bitmap对象 SoftReference<Drawable> srDrawable = new SoftReference<Drawable>(drawable); //添加该对象到Map中使其缓存 GlobalData.image_cache.put(image_name,srDrawable); } } catch (IOException e) { Toast.makeText(c, "图片下载失败", Toast.LENGTH_LONG) .show(); } return drawable; }
如果大家觉得还有不妥的地方,可以留言给我,o(∩_∩)o 共同进步!
参考网址:http://developer.android.com/resources/articles/avoiding-memory-leaks.htmlhttp://blog.sina.com.cn/s/blog_5da93c8f0100w185.html
相关文章推荐
- android很多图片做成帧动画造成内存溢出的解决方法。
- Android中图片过大造成内存溢出常用解决方法
- android-----解决Bitmap内存溢出的一种方法(图片压缩技术)
- Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法(1)
- Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法
- Android下会造成内存溢出的情况以及解决方法
- Android 加载大图片造成OOM异常解决方法
- Android ADT 23.0.0 64位的下载地址及官方下载+内存溢出错误解决方法
- android下载大图片避免OOM的解决方法
- android环境,使用URLconnetion下载https图片异常的解决方法
- 【移动开发】Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法 推荐
- Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法(3)
- Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法(4)
- Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法(2)
- android下载大图片避免OOM的解决方法
- android图片加载内存优化方法,有效解决大图片内存溢出(oom)
- Android编程中聊天页面背景图片、标题栏由于键盘引起问题的解决方法
- Android加载网络图片android.os.NetworkOnMainThreadException异常解决方法
- 解决IE下载 apk/ipa 变成zip:Android 手机应用程序文件下载服务器 配置解决方法
- android ViewPager在拖拽到左边和右边的时候,禁止显示黄色或者蓝色的渐变图片的解决方法