Glide使用
来源:互联网 发布:node.js入门 编辑:程序博客网 时间:2024/04/29 17:25
Glide是一个Android的图片加载和缓存库,它主要专注于大量图片的流畅加载,Glide几乎可以胜任任何你需要使用到的图片从网络拉取,压缩,显示的场景.
基本用法:
Glide.with(MainActivity.this).load(url).into(mImageView);
apply
这里边有一个apply方法,用于一些对图片的个人定制,它传入的是RequestOptions,比如说我们可以这样:
RequestOptions options = new RequestOptions() .centerCrop() .diskCacheStrategy(DiskCacheStrategy.ALL) .skipMemoryCache(false);Glide.with(MainActivity.this).load(url).apply(options).into(mImageView);
这里的RequestOptions 你自己随便定制.
RequestOptions :
1.占位符placeholder
2.transformations变换
3.缓存策略
4.组件特定参数:编码质量,解码参数等.
new RequestOptions() .override(int w, int h)//重新测量大小 .fallback()//url为空时,加载的图片 .error()//错误时的图片 .placeholder();//未加载之前的图片 .centerCrop() .diskCacheStrategy(DiskCacheStrategy.ALL) .skipMemoryCache(false);//是否跳过内存缓存 //....还有一些其他的设置
监听(listener)
当处理完图片后,我们可能会还想对它进行监听,看他是否成功或者对它做进一步的处理.
Glide.with(MainActivity.this).load(url).listener(new RequestListener<Drawable>() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) { //错误返回 return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { //注意这个方法如果返回true的话,代表事件被处理,也就是说在Glide中其他调用它的地方就不执行了. return false; } }).into(mImageView);
transition(变换)
里边还有一个transition方法,决定了图片加载完成后如何过渡到你想要的图片.
1.淡入
2.交叉淡入
3.不过渡
Glide.with(MainActivity.this).asBitmap().load("").transition(BitmapTransitionOptions.withCrossFade()).apply(options).into(mImageView);
这里注意,我是先将图片表明为bitmap ( asBitmap() ) ,然后才使用BitmapTransitionOptions,不同的类型使用不同的transition.
drawable用DrawableTransitionOptions.如果不是bitmap和drawable,就用GenericTransitionOptions
RequestBuilder
它是如何得到的呢?
RequestBuilder<Drawable> builder = Glide.with(MainActivity.this).
通过builder,我们可以使用as(),load(),apply(),into().其内部使用的是链式结构,每一个方法都返回RequestBuilder.而且它可以重用,这样就不用每次都写那么长了,虽然只有一句.
RequestBuilder<Drawable> builder = Glide.with(MainActivity.this).asDrawable();for (int i = 0; i < 10; i++){ builder.load("").into(mImageView);}
预加载:
有时候我们不想图片立即显示,但是into()方法必须传东西啊,这个时候我们就可以使用preload(),它是把图片先缓存起来,你下次在加载,它就直接从缓存里拿就行了.这里注意,我们要将缓存策略改成可以缓存,不然它往哪放了.
Glide.with(MainActivity.this).load(url).preload();//你想显示的时候.Glide.with(MainActivity.this).load(url).into(mImageView);
取消加载:
有一个很有用的东西就是,在我们使用listview时,自动滑动时如果在加载图片,那会导致很卡,所以这个时候我们让它停止加载,等它停止时在加载,那就很好了.
//重新加载Glide.with(MainActivity.this).resumeRequests();//停止加载Glide.with(MainActivity.this).pauseRequests();
新特性(注解)
前面我们使用的时候,需要配置参数,特别是RequestOptions ,那我们如何一步到位了?这个时候我们需要用到它的新特性注解.
首先:创建一个类注意他的注解.
@GlideModulepublic class MyGlideApp extends AppGlideModule { //在这里边,你可以实现自己对于图片的一些定制,重新编译工程,他会给你实现这几个类(看图) //当然你不定制也可以.}
这个时候你就可以一句搞定啦
GlideApp.with(MainActivity.this) .load(url) .centerCrop() .diskCacheStrategy(DiskCacheStrategy.NONE) .dontAnimate().dontTransform().skipMemoryCache(false) .placeholder(R.drawable.music).error(R.drawable.music).fallback(R.drawable.music) .override(100, 100) .into(mImageView);
- 【Glide】使用
- Glide---使用
- Glide使用
- Glide使用
- Glide使用
- Glide使用
- Glide使用
- Glide 使用
- Glide使用
- Glide使用
- Glide使用
- Glide命令,如何使用glide,glide.lock
- Android - Glide的使用
- Android - Glide的使用
- Glide 的基本使用
- Glide使用记录
- Glide使用总结
- glide使用问题
- 英语活动总结
- 事务不起作用的原因之一
- Java基础总结-数据类型
- Linux下automake使用方法
- windows 安装tensorflow/及开发环境
- Glide使用
- 工作杂记二
- 非root用户启动nginx 80端口
- hdu 1163
- 网易云信混淆设置
- jQuery的属性与样式
- Kubernetes PodGC Controller源码分析
- MicroSoft/LintCode:M-打劫房屋 II
- 算法训练 输出米字形