1.在Android的gradle导入:
repositories {
mavenCentral()
google()
}
dependencies {
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
}
基本用法:
String url = "https://ws1.sinaimg.cn/large/0065oQSqly1fw0vdlg6xcj30j60mzdk7.jpg";
Glide.with(this).load(url).into(imageView);
with(Context context) - 需要上下文,这里还可以使用 Activity、FragmentActivity、android.support.v4.app.Fragment、android.app.Fragment 的对象。将 Activity/Fragment 对象作为参数的好处是,图片的加载会和 Activity/Fragment 的生命周期保持一致,例如:onPaused 时暂停加载,onResume 时又会自动重新加载。所以在传参的时候建议使用 Activity/Fragment 对象,而不是 Context。
load(String url) - 这里我们所使用的一个字符串形式的网络图片的 URL,后面会讲解 load() 的更多使用方式
into(ImageView imageView) - 你需要显示图片的目标 ImageView
占位图:
所谓占位图,因为在网络加载图片的过程中由于网络的原因总会有加载慢的问题,为了提高用户体验则在加载图片的过程中先显示一张本地的图片作为显示。
Glide的占位图的用法在4.0以前和4.0之后的用法是不一样的;而一下例子是以4.0之后版本作为说明
在4.0版本以前的用法如下:
String url = "https://ws1.sinaimg.cn/large/0065oQSqly1fw0vdlg6xcj30j60mzdk7.jpg";
Glide.with(this)
.load(url)
.placeholder(R.drawable.ic_launcher_background)
.into(imageView);
Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_SHORT).show();
在4.0之后的用法如下:
在使用4.0的版本时候先要创建一个新的类:
@GlideModule
public class MyAppGlideModule extends AppGlideModule{}
然后build一下则可以使用以前版本一样的引用方法了
String url = "https://ws1.sinaimg.cn/large/0065oQSqly1fw0vdlg6xcj30j60mzdk7.jpg";
GlideApp.with(this)
.load(url)
.placeholder(R.drawable.ic_launcher_background)
.diskCacheStrategy(DiskCacheStrategy.NONE) //去掉图片缓存
.into(imageView);
Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_SHORT).show();
错误占位图,顾名思义就是在加载图片出错的时候显示的图片
String url = "https://ws1.sinaimg.cn/large/0065oQSqly1fw0vdlg6xcj30j60mzdk7.jpg";
GlideApp.with(this)
.load(url)
.placeholder(R.drawable.ic_launcher_background)
.error(R.drawable.ic_launcher_background)
.into(imageView);
设置加载指定格式的图片,如加载gif图片
GlideApp.with(this)
.asGif()
.load(url)
.into(imageView);
关于加载图片大小的问题:
使用Glide进行加载图片的时候其实是不用关心图片的大小的,图片的大小会影响内存的使用;但是Glide有自己的判断机制;Glide不会直接把加载的图片完整尺寸加载到内存中的,而是用多少就加载多少的。Glide会自动判断ImageView的大小,然后只将这么大的图片像素加载到内存当中,帮助我们节省内存开支。
但是Glide还是提供了可以设置图片大小的接口:override(width,high)
指定图片大小
GlideApp.with(this)
.load(url)
.placeholder(R.drawable.loading)
.error(R.drawable.error)
.override(100, 100)
.into(imageView);
未完待续。。。。。。。