1

アプリケーションにFacebookニュースフィードを表示しようとしています。画像を取得し、 ImageLoaderクラスMemoryCacheクラスurlsを使用して表示しようとしました 。画像が大きいために取得しています。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 に答える