如何在android中的listview中处理大位图?

时间:2013-01-08 07:15:05

标签: android facebook

我正在尝试在我的应用中显示 facebook Newsfeed 。我得到了urls图片,我尝试使用 ImageLoader类 MemoryCache类来显示它们。由于图片较大,我收到OOM Exception

我在此link中发现使用 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();
    }
}

请帮助

1 个答案:

答案 0 :(得分:2)

查看此示例项目link

它被称为延迟加载图像