我想从本地来源(使用" 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();