Android基于SoftReference缓存图片的方法
程序员文章站
2024-03-06 14:25:32
本文实例讲述了android基于softreference缓存图片的方法。分享给大家供大家参考,具体如下:
java中的softreference即对象的软引用。如果一个...
本文实例讲述了android基于softreference缓存图片的方法。分享给大家供大家参考,具体如下:
java中的softreference即对象的软引用。如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。使用软引用能防止内存泄露,增强程序的健壮性。
softreference的特点是它的一个实例保存对一个java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该java对象的回收。也就是说,一旦softreference保存了对一个java对象的软引用后,在垃圾线程对这个java对象回收前,softreference类所提供的get()方法返回java对象的强引用。另外,一旦垃圾线程回收该java对象之后,get()方法将返回null
用map集合缓存软引用的bitmap对象:
map<string, softreference<bitmap>> imagecache = new new hashmap<string, softreference<bitmap>>(); //强引用的bitmap对象 bitmap bitmap = bitmapfactory.decodestream(inputstream); //软引用的bitmap对象 softreference<bitmap> bitmapcache = new softreference<bitmap>(bitmap); //添加该对象到map中使其缓存 imagecache.put("1",softrbitmap); .. . //从缓存中取软引用的bitmap对象 softreference<bitmap> bitmapcache_ = imagecache.get("1"); //取出bitmap对象,如果由于内存不足bitmap被回收,将取得空 bitmap bitmap_ = bitmapcache_.get();
注:如果程序中需要从网上加载大量的图片 这时就考虑采用在sdcard上建立临时文件夹缓存这些图片了
更多关于android相关内容感兴趣的读者可查看本站专题:《android缓存操作技巧总结》、《android开发之内存与缓存技巧总结》、《android图形与图像处理技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android多媒体操作技巧汇总(音频,视频,录音等)》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。