我需要加载一张尺寸为2450 x 2450像素的大图片。
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(url,
ImageConfig.getImageOptions());
问题在于,低端设备(内存小于1GB的手机)会出现内存不足的异常。
以下是我的DisplayImageOptions:
public static DisplayImageOptions getImageOptions() {
DisplayImageOptions.Builder options = new DisplayImageOptions.Builder();
options.delayBeforeLoading(10)
//The reason I'm using ARGB_8888 because I need to load bitmap without losing it's quality
.bitmapConfig(Bitmap.Config.ARGB_8888)
.imageScaleType(ImageScaleType.NONE)
//I'm not using disk or memory cache
.cacheOnDisk(false)
.cacheInMemory(false);
return options.build();
}
我尝试根据设备分辨率添加目标大小,但它并没有起作用,加载的位图仍具有2450 x 2450像素的尺寸。
int height = orientation == Configuration.ORIENTATION_PORTRAIT ?
displaymetrics.heightPixels : displaymetrics.widthPixels;
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUri,
new ImageSize(height, height), ImageConfig.getImageOptions());
我尝试将imageScaleType更改为ImageScaleType.EXACTLY
,加载的位图调整大小为1225 x 1225像素,在所有设备上都需要获取高端设备的原始尺寸和低端设备的调整尺寸。
主要问题是目标大小不起作用。
有任何想法应该如何加载图像,特别是对于低端设备?