Google推荐图片加载库Glide简单使用

在项目中引入Glide

Gradle:

compile 'com.github.bumptech.glide:glide:3.7.0'

如果是Ecplise 请点glide jar包下载相应jar包放入lib文件夹

使用时记得添加所需要的权限:如请求网络,读写内存等。

Glide使用

Glide 至少需要三个参数构造一个完整的图片加载请求:

with("上下文") - 上下文环境

load("地址") - 需要加载图片的URL.

into("图片显示的ImageView") ;

如:Glide.with(context).load(internetUrl).into(targetImageView);

1.那就先从Glide.with()开始说吧:

with(Context context). 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。

with(Activity activity).使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。

with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。

with(Fragment fragment).Glide的请求会受到Fragment 生命周期控制。

2.requestManager.load()使用:

load(String string) 传入一个可以访问到的String类型的地址的文件地址(本地或者网络地址等)

load(Uri uri) 传入一个uri

load(File flie ) 传入一个file对象

load(Integer resourceid) 传入你的资源文件的id

load(byte[]bys) 传入一个字节数组

3.Glide缓存策略

Glide默认开启磁盘缓存和内存缓存。

设置图片不加入到内存缓存.skipMemoryCache(true)

Glide.with( context ).load(internetUrl).skipMemoryCache(true) .into( imageview);

设置图片不加入到磁盘缓存

Glide.with( context ).load( internetUrl ).diskCacheStrategy( DiskCacheStrategy.NONE).into( imageview);

diskCacheStrategy参数(磁盘缓存策略):

DiskCacheStrategy.NONE :不缓存图片

DiskCacheStrategy.SOURCE :缓存图片源文件

DiskCacheStrategy.RESULT:缓存修改过的图片

DiskCacheStrategy.ALL:缓存所有的图片,默认

4.图片加载优先级

比如有些重要的图片需要先显示出来

Glide.with( context ).load(internetUrl).priority( Priority.HIGH ).into( imageViewHero );

优先级枚举选择:Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW。默认为Priority.NORMAL。

5.占位图,错误图,和淡入淡出效果

Glide.with(context).load()

.placeholder(R.mipmap.ic_launcher) //设置占位图

.error(R.mipmap.future_studio_launcher) //设置错误图片

.crossFade() //设置淡入淡出效果

.into(imageview);

6.设置图片大小和缩放形式

Glide 会根据ImageView的大小,自动限制图片缓存和内存中的大小,当然也可以通过调用  override(horizontalSize, verticalSize)限制图片的大小:

Glide .with(context) .load(internetUrl

.override(600,200) // 我们可以设置需要加载的图片尺寸。

 .into(imageview);

Glide支持两种图片缩放形式,CenterCrop 和 FitCenter

CenterCrop:等比例缩放图片,直到图片的狂高都大于等于ImageView的宽度,然后截取中间的显示。

FitCenter:等比例缩放图片,宽或者是高等于ImageView的宽或者是高。

Glide .with(context) .load(internetUrl).fitCenter().into(imageview);

7.Glide加载bitmap

privateSimpleTargettarget=newSimpleTarget() {

@Override

public voidonResourceReady(Bitmap bitmap,GlideAnimation glideAnimation) {

    //对bitmap进行处理并设置

    //......

   // imageView.setImageBitmap( bitmap );

    }

};

private voidloadImageSimpleTarget() {

Glide.with( context ).load( eatFoodyImages[0] ).asBitmap().into(target);

}

当然不介意的话,可以把图片转成字节数组再用Glide进行显示。

8.其他方法说明

dontAnimate(). 移除所有的动画。

animate(int animationId). 在异步加载资源完成时会执行该动画。

animate(ViewPropertyAnimation.Animator animator). 在异步加载资源完成时会执行该动画。

asBitmap(). 无论资源是不是gif动画,都作为Bitmap对待。如果是gif动画会停在第一帧。

asGif().把资源作为GifDrawable对待。如果资源不是gif动画将会失败,会回调.error()。

Glide.get(context).clearMemory();清除缓存在ui线程中调用。


注:若有错误欢迎指正

你可能感兴趣的:(Google推荐图片加载库Glide简单使用)