0

バックグラウンドで画像をダウンロードする機能があります。ここに機能があります。

    @UiThread
void donwloadImage(final String url,ImageLoader mImageLoader){
ImageRequest request = new ImageRequest(url, new Response.Listener<Bitmap>() {

        @Override
        public void onResponse(Bitmap response) {
                      log.i("Download","url="+url);
        }
    }, 0, 0, null, null);
    queue.add(request);
}

ダウンロードは正常に機能しますが、この画像を

com.android.volley.toolbox.NetworkImageView 
image.setImageUrl(url,VolleySingleton.getInstance(context).getImageLoader());

画像はxmlから来ます:

        <com.android.volley.toolbox.NetworkImageView
            android:id="@+id/imgArticle"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:visibility="visible" />

ネットワークがない場合、これは機能しません。(関数 donwloadImage(final String url,ImageLoader mImageLoader) で既にダウンロードされた画像) どうすればこの問題を解決できますか?

私はVolleySingletonを使用しています:

package com.intescia.library.service.metier.volley;
import android.content.Context;
import android.graphics.Bitmap;

import android.util.LruCache;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;

public class VolleySingleton {
private static VolleySingleton mInstance = null;
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;

private VolleySingleton(Context context){
    mRequestQueue = Volley.newRequestQueue(context);
    mImageLoader = new ImageLoader(this.mRequestQueue, new ImageLoader.ImageCache() {
        private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>    
       (1000);
        public void putBitmap(String url, Bitmap bitmap) {
            mCache.put(url, bitmap);
        }
        public Bitmap getBitmap(String url) {
            return mCache.get(url);
        }
    });
}

public static VolleySingleton getInstance(Context context){
    if(mInstance == null){
        mInstance = new VolleySingleton(context);
    }
    return mInstance;
}

public RequestQueue getRequestQueue(){
    return this.mRequestQueue;
}

public ImageLoader getImageLoader(){
    return this.mImageLoader;
}

}

返信ありがとうございます

4

0 に答える 0