203.04.03———android写真キャッシュの二LruCache紹介

1324 ワード

203.04.03———android写真キャッシュの二LruCache紹介
参考:
http://blog.csdn.net/linghu_java/articale/detail/8574102
androidはもうキャッシュデータ構造を提供していますので、私達はもうLinked hashMapを使ってシミュレーションする必要はありません。
int memClass = ((ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
        int cacheSize = 1024 * 1024 * memClass / 4;  //       1/4
        mLruCache = new LruCache<String, Bitmap>(cacheSize) {
            @Override
            protected int sizeOf(String key, Bitmap value) {
                if (value != null)
                    return value.getRowBytes() * value.getHeight();
                else
                    return 0;
            }
                                                                                          
            @Override
            protected void entryRemoved(boolean evicted, String key, Bitmap oldValue, Bitmap newValue) {
                if (oldValue != null)
                    //         ,   LRU                     
                    mSoftCache.put(key, new SoftReference<Bitmap>(oldValue));
            }
        };