Glide图片加载loading——超简单实现

Glide图片加载loading——超简单实现_第1张图片

使用设置占位图即可;

弊端:不能实现加载进度展示;

小米6真机测试正常;虚拟机网速太快,没有动画,应该是没来得做动画,有问题可留言讨论

 val options = RequestOptions()
                    .error(R.mipmap.icon_default_img)
                    //关键是这个占位图,使用标签;
                    //设置帧动画资源也可以,不过需要代码开启动画;
                    .placeholder(R.drawable.loading_anim)
            
            Glide.with(context)
                    .applyDefaultRequestOptions(options)
                    .load(imgUrl)
                    .into(imageView)
                   //当设置帧动画资源时自定义ImageTarget,可以实现打开帧动画;(我懒得验证,理论上可以实现)
                   //.into(LoaderImageViewTarget(imageView))

文件:loading_anim;该文件主要实现图片旋转动画



图片:image_loader_loading;




  
  

解题思路:

需求:图片加载时,展示loading

查资料:发现都是些自定义http拦截器,计算加载进度,自定义ProgressBar等等看着头大

思考:通过自定义ImageView实现;

查看源码:发现Glide将ImgaeView控件绑定ViewTarget;实现占位图,错误图,真图的切换;有破绽~!!!

Glide图片加载loading——超简单实现_第2张图片

思考:Drawable有各种Animated扩展,但是需要代码开启动画,可以通过自定义ViewTarget开启Drawable动画;so easy

进阶:用AnimatedDrawable也可以,但是不管是帧动画还是SVG动画,都是需要多张图片,这内存占用好大啊~!我这就简单的转圈圈,太浪费了!灵光一闪,ImageView设置该内容后,自动开始动画;完美!

反思:原来不需要自定义ViewTarget,就可以实现简单的loading;兜了好大一个圈啊

 

扩展:既然了解了ViewTarget,那么也可以其他一些不可描述的事情;比如通过设置error占位图,实现单击重新加载功能;

你可能感兴趣的:(日常记录,Glide,android实用案例)