universal-image-loader 使用思路

学习一个新框架的思路:查看核心类,获得并初始化核心对象,使用对象提供的方法解决问题

程序核心类 ImageLoader , 对象获得方法 ImageLoader.getInstance()
对象初始化方法 ImageLoader.getInstance().init(ImageLoaderConfiguration  configuration );

初始化类 ImageLoaderConfiguration(这个类本身没有方法,初始化参数依赖依赖他的内部类,例如主要的初始化内部类Builder)
对象获得方法一: ImageLoaderConfiguration.createDefault(Context context )获得默认的初始化不需要再使用Builder对象初始化
对象获得方法二: ImageLoaderConfiguration.Builder.build()(需要Builder对象)
Builder builder = new ImageLoaderConfiguration.Builder(Context);
Builder对象里面有初始化各种参数的方法。
示例{
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(this);
DiskCache cache = new UnlimitedDiskCache(Utils.getImageCache());
//配置文件保存的路径
builder.diskCache(cache);
//设置保存图片的最大张数
builder.diskCacheFileCount(500);
//配置磁盘缓存保存图片的最大内存
builder.diskCacheSize(50 * 1024 * 1024);
// 获取系统分配给应用程序的最大内存
int maxMemory = (int) Runtime.getRuntime().maxMemory();
int maxSize = maxMemory / 8;
//配置内存缓存的大小
builder.memoryCacheSize(maxSize);
//配置保存图片的命名器
builder.diskCacheFileNameGenerator(new Md5FileNameGenerator());
}

核心使用方法ImageLoader.getInstance() .displayImage(String url ,ImageView imageView ,DisplayImageOptions option
, ImageLoadingListener listener, ImageLoadingProgressListener progressListener )可以根据需要筛减
参数详解:
DisplayImageOptions        显示图片的设置(辅助理解:初始化类只是初始化了所能提供的功能,这个类的作用是选择作为本次加载图片这一事件需要的功能)
示例{
//同样使用内部类Builder来控制
DisplayImageOptions.Builder builder = new DisplayImageOptions.Builder();
//启用内存缓存
builder.cacheInMemory(true);
builder.cacheOnDisk(true);
//设置读取时放置的图片
builder.showImageOnLoading(resLoadingId);
//设置读取失败是放置的图片
builder.showImageOnFail(resFailId);
//获得option对象
builder.build();
}
ImageLoadingListener        设置各种状态下使用的图片(这里的各种对象就不细分了,需要使用的时候查看源码)
{
//设置开始读取时的图片
void onLoadingStarted(String var1, View var2);
//设置读取失败时使用的图片
void onLoadingFailed(String var1, View var2, FailReason var3);
//设置读取成功是设置的图片
void onLoadingComplete(String var1, View var2, Bitmap var3);
//设置取消读取是使用的图片
void onLoadingCancelled(String var1, View var2);
}
ImageLoadingProgressListener          监听图片读取的进度条
{
//设置进度条(后面2个参数分别是当前进度和总进度,用过进度条的不难理解吧)
void onProgressUpdate(String var1View var2, int var3, int var4);
}

总之使用起来需要控制的就这些东西,其他的异步下载,线程控制,缓存控制,以及各种优化都已经实现了,不需要你来控制,是一个非常方便的图片加载框架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值