Day5:Glide框架


关于源码的几个网址:

  1. Glide里面的几个线程池:https://blog.csdn.net/f409031mn/article/details/88921557
  2. Glide缓存机制:
    https://www.jianshu.com/p/7b1ff697b06f
  3. bitmap是面试经常问的知识:推荐一个牛掰大神的博客带你全面深入理解Glide框架:https://blog.csdn.net/sinyu890807/column/info/15318

一.Bitmap三级缓存机制

1.依赖:implementation ‘com.github.bumptech.glide:glide:4.9.0’//glide依赖
2.内存—>SD卡—>网络
3.SD卡位置
在这里插入图片描述
在这里插入图片描述

二. 加载本地SD卡图片+网络图片+资源图片+视频+GIF动图

Glide .with(this).load(地址).into(imageView);

三.加载圆形头像

               Glide.with(this)
                .load("https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2858426577,4189650377&fm=26&gp=0.jpg")
                .transform(new CircleCrop())
                .into(m1);

四.加载圆角头像

            Glide.with(this)
                .load("https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2858426577,4189650377&fm=26&gp=0.jpg")
                .transform(new CenterCrop(),new RoundedCorners(20))//居中裁剪+圆角
                .into(m1);

五,设置占位符和加载失败图片

error:设置错误图片
placeholder:设置占位符图片
skipMemoryCache(true):关闭内存缓存
diskCacheStrategy(DiskCacheStrategy.NONE):关闭磁盘缓存

        Glide.with(this)
                .load("https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2858426577,4189650377&fm=26&gp=0.jpg")
                .placeholder(R.drawable.ic_launcher_background)//占位符,还没有发起网络请求,一般是空白或公司的logo
                .error(R.drawable.ic_launcher_background)//加载失败,发起网络请求,途中失败,一般是撕裂图片
                .skipMemoryCache(true)//关闭内存缓存
                .diskCacheStrategy(DiskCacheStrategy.NONE)//关闭磁盘缓存
                .transform(new CenterCrop(),new RoundedCorners(20))//居中裁剪+圆角
                .into(m1);

六,一键清理所有缓存

Glide.get(GlideActivity.this).clearMemory();//清除内存缓存
new Thread(new Runnable() {
                        @Override
                        public void run() {
                            Glide.get(GlideActivity.this).clearDiskCache();//清除SD卡缓存
                        }
                    }).start();

七,封装工具类

public class GlideUtils {
    /***
     * 加载普通图片 关闭缓存 不重要的图片
     * @param context
     * @param path
     * @param imageView
     */
    public static void displayImage(Context context, Object path, ImageView imageView){
        Glide.with(context)
                .load(path)
                .placeholder(R.drawable.ic_launcher_background)//还没有发起网络请求,一般空白或者公司logo
                .error(R.drawable.ic_launcher_background)//发起请求失败,一般撕裂
                .diskCacheStrategy(DiskCacheStrategy.NONE)//关闭磁盘
                .skipMemoryCache(true)//关闭内存
                .transform(new CenterCrop())//居中裁剪
                .into(imageView);
    }

    /***
     * 加载圆形图片 关闭缓存 不重要的图片
     * @param context
     * @param path
     * @param imageView
     */
    public static void displayCircleImage(Context context, Object path, ImageView imageView){
        Glide.with(context)
                .load(path)
                .placeholder(R.drawable.ic_launcher_background)//还没有发起网络请求,一般空白或者公司logo
                .error(R.drawable.ic_launcher_background)//发起请求失败,一般撕裂
                .diskCacheStrategy(DiskCacheStrategy.NONE)//关闭磁盘
                .skipMemoryCache(true)//关闭内存
                .transform(new CircleCrop())//圆形裁剪
                .into(imageView);
    }


    /***
     * 加载圆角图片 关闭缓存 不重要的图片
     * @param context
     * @param path
     * @param imageView
     */
    public static void displayRoudedImage(Context context, Object path, ImageView imageView,int raduis){
        Glide.with(context)
                .load(path)
                .placeholder(R.drawable.ic_launcher_background)//还没有发起网络请求,一般空白或者公司logo
                .error(R.drawable.ic_launcher_background)//发起请求失败,一般撕裂
                .diskCacheStrategy(DiskCacheStrategy.NONE)//关闭磁盘
                .skipMemoryCache(true)//关闭内存
                .transform(new CenterCrop(),new RoundedCorners(raduis))//圆角裁剪
                .into(imageView);
    }


}

练习手册:

技能一:

1.使用Glide加载视频
2.使用Glide加载GIF动图
3.使用Glide加载网络图片
4.使用Glide加载本地图片
5.使用Glide加载圆形头像
6.使用Glide加载圆角头像
7.使用Glide设置占位符
8.使用Glide设置加载错误图片
9.清除Glide的缓存

技能二:

使用OKHttp网络请求json数据,将请求到数据展现在listview中
1.OKHttp要进行封装,采用单例模式
2.OKhttp设置log拦截器和Token拦截器
3.使用OKHttp post请求数据,将请求到的数据展现在list view中
4.Id为偶数的图片使用Glide加载成圆形头像
5.Id为奇数的图片使用Glide加载圆角头像
6.每张图片设置占位符和错误加载图片
7.设置一个按钮能够实现清除Glide涉及到的缓存

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值