摘要: 最近开发电视版的云存储应用,要求”我的相册“模块有全屏预览图片的功能,全屏分辨率是1920*1080超清。UI组件方面采用Gallery+ImageSwitcher组合,这里略过,详情参见google Android API。相册图片预取缓存策略是内存缓存(硬引用LruCache、软引用SoftReference<Bitmap>)、外部文件缓存(context.getCachedDir()),缓存中取不到的情况下再向服务端请求下载图片。同时缓存三张图片(当前预览的这张,前一张以及后一张)。1.内存缓存[html]view plaincopy//需要导入外部jar文件android- 阅读全文
posted @ 2013-01-16 18:08 merryjd 阅读(455) 评论(1) 推荐(0)
摘要: public class BitmapCache { static private BitmapCache cache; /** 用于Chche内容的存储 */ private Hashtable<Integer, MySoftRef> hashRefs; /** 垃圾Reference的队列(所引用的对象已经被回收,则将该引用存入队列中) */ private ReferenceQueue<Bitmap> q; /** * 继承SoftReference,使得每一个实例都具有可识别的标识。 */ private class MySo... 阅读全文
posted @ 2013-01-16 17:59 merryjd 阅读(264) 评论(0) 推荐(0)
摘要: Admin2011年11月21日媒介 本章内容android.graphics.Bitmap章节,译为"位图",版本为Android 4.0 r1,翻译来自:"StreamH",迎接接见他的博客:"http://blog.csdn.net/qs_csu",再次感激"StreamH" !等待你一路参与翻译Android的相干材料,接洽我over140@gmail.com。声明 迎接转载,但请保存文章原始出处:) 博客园:http://www.cnblogs.com/ Android中文翻译组:http://andro 阅读全文
posted @ 2013-01-16 17:57 merryjd 阅读(320) 评论(0) 推荐(0)
摘要: package com.tszy.utils; import java.util.HashMap;import java.util.Map.Entry; import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory; /** * 游戏用到的所有图片 * * @author JianbinZhu * */public final class Bmps { // 解析图片用得到类 private static Resources re... 阅读全文
posted @ 2013-01-16 17:56 merryjd 阅读(332) 评论(0) 推荐(0)
摘要: 第一种方法--及时回收bitmap内存:一般而言,回收bitmap内存可以用到以下代码if(bitmap != null && !bitmap.isRecycled()){ bitmap.recycle(); bitmap = null;}System.gc();bitmap.recycle()方法用于回收该bitmap所占用的内存,接着将bitmap置空,最后,别忘了用System.gc()调用一下系统的垃圾回收器。在这里要声明一下,bitmap可以有多个(以为着可以有多个if语句),但System.gc()最好只有一个(所以我将它写在了if语句外),因为System.gc( 阅读全文
posted @ 2013-01-16 17:50 merryjd 阅读(774) 评论(0) 推荐(0)
摘要: 有时会发现由于内存不够而导致错误,大都来源于Image太大造成的。下面给出一个简单有效的方法:BitmapFactory.Options opts = new BitmapFactory.Options();opts.inSampleSize = 4;Bitmap bitmap = BitmapFactory.decodeFile(imageFile, opts);设置恰当的inSampleSize是解决该问题的关键之一。BitmapFactory.Options提供了另一个成员inJustDecodeBounds。BitmapFactory.Options opts = new Bitmap 阅读全文
posted @ 2013-01-16 17:40 merryjd 阅读(895) 评论(0) 推荐(0)
摘要: 1、Drawable→Bitmappublic static Bitmap drawableToBitmap(Drawable drawable) {Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight(),drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);Canvas canvas = new Canvas(bitmap);/ 阅读全文
posted @ 2013-01-16 17:26 merryjd 阅读(327) 评论(0) 推荐(0)
摘要: ava中的SoftReference即对象的软引用。如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。使用软引用能防止内存泄露,增强程序的健壮性。SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该Java对象的回收。也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象 阅读全文
posted @ 2013-01-16 16:01 merryjd 阅读(286) 评论(0) 推荐(0)
摘要: 首先要知道java的成员变量分为:实例变量和类变量(也就是static变量).当JAVA程序执行时,类的字节码文件就被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存,但是类中的类变量在类被加载到内存的时候,就分配了相应的内存空间.如果该类创建对象,那么不同的实例变量互不相同,即分配不同的内存空间,而类变量不再重新分配,所有的对象共享类变量,即所有的对象的类变量是相同的一处内存空间,类变量的内空空间至于什么时候释放内存空间,这是大家想知道的,那么我告诉大家,类变量的内存空间直到程序退出运行,才会释放所占有的内存. 其实说到这里,我们应该再随便说下类的方法,类的方法也分实例方法和 阅读全文
posted @ 2013-01-16 15:09 merryjd 阅读(213) 评论(0) 推荐(0)