我有一个在后台下载图像的功能,这里是功能:
@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;
}
}
感谢您的回复