android 解决imageloader加载内存溢出

时间:2022-10-17 20:56:14

jar 下载地址

http://pan.baidu.com/s/1eRYdu8M

创建 ImageManager

/**
* Created by meixi on 2016/12/27. 17:23
* 邮箱 1085220040@qq.com
*/
import android.graphics.Bitmap;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.zscainiao.video_.R;

public class ImageManager {
/**
* 获取图片加载
*
* @return
*/
public static ImageLoader getInstance() {
return ImageLoader.getInstance();
}

/**
* 新闻图片缓存设置
*/

private static DisplayImageOptions newsHeadOptions;

public static DisplayImageOptions getNewsHeadOptions() {
if (newsHeadOptions == null) {
newsHeadOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.item)
.showImageOnFail(R.drawable.item)
.showImageOnLoading(R.drawable.item)
.cacheInMemory(true) // 缓存内存
.cacheOnDisc(true)// 缓存文件
.build();
}
return newsHeadOptions;
}

private static DisplayImageOptions viewsHeadOptions;

public static DisplayImageOptions getViewsHeadOptions() {
if (viewsHeadOptions == null) {
viewsHeadOptions = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.item)
.showImageForEmptyUri(R.drawable.item)
.showImageOnFail(R.drawable.item)
.resetViewBeforeLoading(false).cacheOnDisc(true)
.cacheInMemory(true).imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.considerExifParams(true)
.displayer(new FadeInBitmapDisplayer(100)).build();
}
return viewsHeadOptions;
}

private static DisplayImageOptions userImageOptions;

public static DisplayImageOptions getUserImageOptions() {
if (userImageOptions == null) {
userImageOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.item)
.showImageOnFail(R.drawable.item)
.cacheInMemory(true) // 缓存内存
.cacheOnDisc(true)// 缓存文件
.build();
}
return userImageOptions;
}

}
引用ImageManager读取URL显示图片

ImageManager.getInstance().displayImage(url, imageView, ImageManager.getViewsHeadOptions());