在 App 启动时初始化 ImageLoader

Initialization of ImageLoaders on App Launch

我如何在应用程序启动时初始化图像加载器,以便我可以在我的任何地方使用它application.I 我正在尝试使用 volley 库。

 if (mImageLoader == null) {
        mImageLoader = new ImageLoader(this.mRequestQueue,
                new LruBitmapCache());
    }

我会创建一个单例。这是我发布的一个项目的示例:

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();

试试这个:

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);
    }
}