图片加载库Glide的使用

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);

 

参考了郭大侠的博客:Glide的基本使用

未完待续。。。。。。。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Glide 是一个高效、开源、 Android设备上的媒体管理框架,它遵循BSD、MIT以及Apache 2.0协议发布。Glide具有加载本地图片、远程图片、GIF动画等功能。项目地址:https://github.com/bumptech/glide 你也可以直接下载jar包:https://github.com/bumptech/glide/releases 如何使用:创建个ImageView2. 获取图片并填充到ImageView  获取远程图片: Glide.with(this).load("http://www.see-source.com/source/img/logo_01.png").into(iv);   获取本地图片Glide.with(this).load(R.drawable.logo_01).into(iv);  获取GIF动画图片Glide.with(this).load(R.drawable.image02).into(iv);image02.gif是个动画图片具体功能如下:GIF 动画的解码 :通过调用Glide.with(context).load(“图片路径“)方法,GIF动画图片可以自动显示为动画效果。如果想有更多的控制,还可以使用Glide.with(context).load(“图片路径“).asBitmap()方法加载静态图片使用Glide.with(context).load(“图片路径“).asGif()方法加载动画图片本地视频剧照的解码: 通过调用Glide.with(context).load(“图片路径“)方法,Glide能够支持Android设备中的所有视频剧照的加载和展示缩略图的支持: 为了减少在同一个view组件里同时加载多张图片的时间,可以调用Glide.with(context).load(“图片路径“).thumbnail(“缩略比例“).into(“view组件“)方法加载一个缩略图,还可以控制thumbnail()中的参数的大小,以控制显示不同比例大小的缩略图Activity 生命周期的集成: 当Activity暂停和重启时,Glide能够做到智能的暂停和重新开始请求,并且当Android设备的连接状态变化时,所有失败的请求能够自动重新请求转码的支持: Glide的toBytes() 和transcode() 两个方法可以用来获取、解码和变换背景图片,并且transcode() 方法还能够改变图片的样式动画的支持: 新增支持图片的淡入淡出动画效果(调用crossFade()方法)和查看动画的属性的功能OkHttp 和Volley 的支持: 默认选择HttpUrlConnection作为网络协议栈,还可以选择OkHttp和Volley作为网络协议栈其他功能: 如在图片加载过程中,使用Drawables对象作为占位符、图片请求的优化、图片的宽度和高度可重新设定、缩略图和原图的缓存等功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值