UniversalimageLoader的最佳配置是什么

时间:2014-08-27 11:14:21

标签: java android out-of-memory large-files universal-image-loader

我想从本地来源(使用" file://"标记)加载大图像,用于网格视图,例如默认的电话库应用程序。

我测试了很多配置,没有什么能做我想要的......

我有一个OutOfMemoryException或列表滞后很大。

这是我目前如何初始化它们:

public static void initImageLoader(Context context) {
    // Determine cache memory size
    int memoryCacheSize;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) {
        int memClass = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
        memoryCacheSize = (memClass / 8) * 1024 * 1024; // 1/8 of app memory limit 
    } else {
        memoryCacheSize = 2 * 1024 * 1024;
    }
    if (DEBUG_MODE) {
        Log.i(TAG, "Imageloader.memoryCacheSize="+ memoryCacheSize);
    }

    // Configure the image loader
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
        .threadPriority(Thread.NORM_PRIORITY - 2)
        .memoryCacheSize(memoryCacheSize)
        .denyCacheImageMultipleSizesInMemory()
        .discCacheFileNameGenerator(new Md5FileNameGenerator())
        .tasksProcessingOrder(QueueProcessingType.LIFO)
        .build();

    // Initialize ImageLoader with configuration.
    ImageLoader.getInstance().init(config);
}

我的适配器:

private ImageLoader mImageLoader = ImageLoader.getInstance();
private DisplayImageOptions mOptions  = new DisplayImageOptions.Builder()
        .showImageOnLoading(R.drawable.ic_launcher)
        .cacheOnDisk(true)
        .cacheInMemory(true)
        .considerExifParams(true)
        .build();

0 个答案:

没有答案