简单学习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);

猜你喜欢

转载自blog.csdn.net/qq_39652726/article/details/81116354