1

我正在尝试在我的应用程序中显示facebook Newsfeed。我得到了urls图像,并尝试使用 ImageLoader 类MemoryCache来显示它们。我OOM Exception因为大图像而得到。

我在此 链接中发现使用 SoftReference 或 WeakReference 将无法处理大位图
为了处理这个我需要实现不同的类而不是使用过去ImageLoader,MemoryCache,FileCache classes.

我在哪里可以找到这些类?以及如何实现它们。

import java.lang.ref.SoftReference;
import java.util.HashMap;
import android.graphics.Bitmap;

public class MemoryCache {
    private HashMap<String, SoftReference<Bitmap>> cache=new HashMap<String, SoftReference<Bitmap>>();

    public Bitmap get(String id){
        if(!cache.containsKey(id))
            return null;
        SoftReference<Bitmap> ref=cache.get(id);
        return ref.get();
    }

    public void put(String id, Bitmap bitmap){
        cache.put(id, new SoftReference<Bitmap>(bitmap));
    }

    public void clear() {
        cache.clear();
    }
}

请帮忙

4

1 回答 1

2

看看这个简单的项目链接

它被称为图像的延迟加载

于 2013-01-08T07:19:33.657 回答