如何在应用程序启动时初始化图像加载器,以便我可以在我的应用程序中的任何地方使用它。我正在尝试使用凌空库。
if (mImageLoader == null) {
mImageLoader = new ImageLoader(this.mRequestQueue,
new LruBitmapCache());
}
答案 0 :(得分:1)
我会创建一个单身人士。这是我发布的项目的一个例子:
public class VolleySingleton {
private static Context mContext;
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private static VolleySingleton ourInstance;
public static VolleySingleton getInstance(Context context) {
if (ourInstance == null) {
ourInstance = new VolleySingleton(context);
}
return ourInstance;
}
private VolleySingleton(Context context) {
mContext=context;
mRequestQueue = Volley.newRequestQueue(context.getApplicationContext());
mImageLoader = new ImageLoader(mRequestQueue,
new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap>
cache = new LruCache<String, Bitmap>(20);
@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}
});
}
public <T> void addToRequestQueue(Request<T> req) {
mRequestQueue.add(req);
}
public ImageLoader getImageLoader() {
return mImageLoader;
}
}
然后您可以使用以下语句获取图像加载器:
VolleySingleton.getInstance(this).getImageLoader();
答案 1 :(得分:0)
试试这个:
public class Application extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
.defaultDisplayImageOptions(defaultOptions)
.build();
ImageLoader.getInstance().init(config);
}
}