前端开发技术

Glide的使用和分析

2017-11-23  本文已影响7人  Aron1001

用法

Glide.with(this).load(url).into(imageView)

with()方法接收的参数可以是context,fragment或者activity,当在activity或者fragment中调用时可以直接传入this,如果既不在activity又不在fragment中,我们可以传入ApplicationContext,值得注意的是,传入this与ApplicationConext的生命周期是有区别的,this会在activity或者fragment销毁时停止加载图片,而ApplicationContex则只有当应用被杀掉的时候才会停止加载。

load()方法用于加载指定的图片资源,可以是网络图片url,本地图片file,应用资源,二进制流,Uri对象等。

// 加载本地图片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);

// 加载应用资源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);

// 加载二进制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

// 加载Uri对象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

into()方法比较简单,接收的参数就是指图片要加载到的控件。

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .into(imageView);

Glide有非常强大的缓存功能,加载完的图片会缓存下来,下次会直接到缓存中取,因而加载速度会很快,占位图会来不及显示。如果不想使用缓存可以这样写:

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

异常占位图

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);
Glide.with(this)
     .load(url)
     .asBitmap()
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

asBitmap()表示只允许加载静态图片。
类似的,如果想指定加载动态图片,使用asGif(),如果图片是静态图片,指定加载动态,会显示异常图片。

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .override(100, 100)
     .into(imageView);
上一篇 下一篇

猜你喜欢

热点阅读