学习笔记Glide4图片加载库

添加依赖项

app下的build.gradle

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.7.1'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
}

项目下的build.gradle里的allprojects里

repositories {
  mavenCentral()
  google()
}

或者直接下载jar包放到lib下bulidpath
https://pan.baidu.com/s/1i21b2wbNeBzu-l63eD4nzw

简单使用

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

好多操作,比如placeholder、transform、centerCrop、signature等方法现在需要写在RequestOptions里

Glide
.with(this)
.load(url)
.apply(new RequestOptions().placeholder(R.drawable.headimg))
.into(imageView);

圆形裁切

Glide4有circleCrop圆形裁切的功能,可以在加载图片的时候直接裁成圆形

Glide
.with(this)
.load(url)
.apply(new RequestOptions().circleCrop().placeholder(R.drawable.headimg))
.into(imageView);

关于图片刷新

有时候我们链接到同一url下的图片,图片已经更改,而图片却不刷新的时候,我们需要用到signature签名,
System.currentTimeMillis()可以获取一个时间戳作为作为签名,当key不一样时,图片就会重新加载。

Glide
.with(this)
.load(url)
.apply(new RequestOptions().circleCrop().signature(new ObjectKey(System.currentTimeMillis()+"")))
.into(imageView);

为了防止每次加载图片都刷新
我们可以写两个方法来判断图片源是否更改了

    //更改头像的时候,保存头像更新状态
    public static void saveHeadChange(Context context) {
        SharedPreferences sp = context.getSharedPreferences("user_head", 0);
        SharedPreferences.Editor editor = sp.edit();
        editor.putString("headKey", System.currentTimeMillis()+"");
        editor.apply();
    }
    //获取头像更新状态
    public static String getHeadChange(Context context) {
        SharedPreferences sp = context.getSharedPreferences("user_head", 0);
        return sp.getString("headKey", "666");
    }

当源图片发生了更改,就保存头像更新状态
加载头像的时候,获取头像更新状态
这样图片只会在源图片发生更改时刷新,否则就加载缓存,节省流量、加快速度。

Glide
.with(this)
.load(url)
.apply(new RequestOptions().circleCrop()
.signature(new ObjectKey(UserUtil.getHeadChange(getActivity()))))//我放在一个UserUtil工具类里面
.into(imageView);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值