当前位置: 首页 > news >正文

Glide配合CircleImageView加载圆形图片的巨坑

本篇本章讲述的是Gllide配合CircleImageView加载圆形图片的问题

注明: 本文属于原创,转发请标注说明转文地址

Glide是Google推荐的图片加载库,优缺点这里我们不一一讲解,有需要的同学可以自行百度,或者各大博客阅览学习.

回到正文: 在Glide4.0以前 我们还不能使用的Glide 自带的圆形图片加载库, 很多时候我们只能配合CircleImageView来实现圆形图片的加载,那时候我们可能对Glide还不是很熟悉,所以配合自定义控件遇到的一些奇怪问题,我们还尚不能彻底分析,解决.

如上图所示, 当我们第一次进入页面,圆形图片默认加载了占位图(其实后面我才发现这其实是CircleImageView率先占了位置!!!),妈卖批~ 什 么鬼 往下刷新一下又出来了? 网络问题么?

刚开始产品找到我:"路遥,这个你看下,怎么第一次进来,加载是的默认图片,有的显示的是可以的 有的不行,我再次刷新又显示了"

我微微一笑 : "啊~这个...可能是网络问题...哈哈 就这样把锅甩了出去,不过讲真的,那时我自己都以为是网络加载的问题"

后来我发现很多小伙伴也遇到了这样的问题,所以才自己抽空深入了解下并且找到解决方案.

不可行方案:

1:网上很多小伙伴说直接把占位图直接注释掉~不使用占位图

这个方案实在不可行,我们不单单说能不能再特殊情况下会解决问题,就说在网络加载失败的情况下,或者是网络加载延迟情况下,加载出来的图片是一张透明的圆形图片,亲测...显然这样的体验是对我们和用户不是友好的.....

2:不使用默认动画

其实 dontAnimate() 这个在加载本地图片 和网络延迟的情况下 是没有任何效果的.....

以上这些都不是终极解决的方案 或者说是错误的方案..那么我们该如何解决这个问题呢

Glide 4.0后 自带加载圆形图片功能

这里我们会使用到 BitmapTransformation 有兴趣的小伙伴可以去了解下~

上图就是Glide 自带圆形图片使用方法~ 我们可以通过自定义Transformation 可以改变圆角大小,来实现不同的圆形图片效果~ 然后把它封装成公共类 便于使用.

所以还有之前问题的小伙伴 尽快把Glide升级到4.0以上 替换CircleImageView吧! 和CircleImageView说拜拜~

相关文章:

  • Attempting to write a row[5] in the range [0,394] that is already written to disk.
  • 全国首个云计算硕士高端班北航开班
  • 也说说Docker、Moby和Rancher
  • React 的性能优化(一)当 PureComponent 遇上 ImmutableJS
  • 软件需求分析
  • 关于Java的File类、字节流和字符流
  • 米扑科技助力公益:寻找失踪儿童一起回家
  • sql server 判断系统中是否存在某个表,存储过程 或触发器
  • 智能数据变革来临:我为什么看好Chinapex创略模式
  • 大数据如何解决行业挑战?大数据在10个垂直行业中的应用
  • 注意!综合布线系统管理的八大坑
  • 【JAVA零基础入门系列】Day4 变量与常量
  • 疯狂Spring Cloud连载(6)——负载均衡框架Ribbon介绍
  • 汉诺塔算法
  • 使用OTL进行数据库编程
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Android Studio:GIT提交项目到远程仓库
  • Consul Config 使用Git做版本控制的实现
  • Java到底能干嘛?
  • JS题目及答案整理
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 机器学习中为什么要做归一化normalization
  • 面试遇到的一些题
  • 如何学习JavaEE,项目又该如何做?
  • 线上 python http server profile 实践
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • gunicorn工作原理
  • ​io --- 处理流的核心工具​
  • (10)ATF MMU转换表
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (分类)KNN算法- 参数调优
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (强烈推荐)移动端音视频从零到上手(上)
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转) 深度模型优化性能 调参
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)菜鸟学数据库(三)——存储过程
  • (转)程序员技术练级攻略
  • (转载)深入super,看Python如何解决钻石继承难题
  • **CI中自动类加载的用法总结
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET6实现破解Modbus poll点表配置文件
  • .NET轻量级ORM组件Dapper葵花宝典
  • .Net组件程序设计之线程、并发管理(一)
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @ConfigurationProperties注解对数据的自动封装
  • [Android]使用Android打包Unity工程
  • [Angular 基础] - 数据绑定(databinding)
  • [AutoSar]BSW_Com02 PDU详解
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [bzoj1038][ZJOI2008]瞭望塔