Glide placeholder 圆角失效

2018-10-09 23:10:54


解决办法,一种是不使用占位符,另外一种则是不使用默认动画。

我选择了第二种,因为我至今没发现使用默认动画有什么效果。


圆角我是用的第三方控件,加载图片用的是glide。  然而placeholder 会把图片再此撑为直角。


项目之前使用的图片加载库是universal-image-loader,但是此库已经好久不维护了,同时也发现了更加不错的图片加载库,也就是Glide,用起来很方便并且内存占用量还很令人满意,所以决定大刀阔斧的将之前的加载库换成Glide。

但是在换用户头像相关模块的时候发现问题了,就是加载网络图片时第一次加载死活加载不出来,头像控件使用的是CircleImageView,最后换成ImageView试验,发现没有问题,这就找出问题所在了,就是CircleImageView这个控件和Glide之间的关系了。

查找相关资料后,找出问题所在以及解决方案如下:

1、使用Glide默认没有圆角转换的功能,需要使用自定义Transformation,但无法实现placeholder图片的圆角转换,但是圆角图片,使用CircleImageView,虽然CircleImageView继承ImageView,不能使用scaleType参数,否则报InflateException。CircleImageView 源码主动抛出的异常。

2、问题出现的原因就是使用自定义ImageView,如CircleImageView,通过Glide加载网络图片,且设置了占位符,如placeholder或error,则第一次不显示网络图片

3、解决办法有两种,一种是不使用占位符,另外一种则是不使用默认动画。


Glide.with(getContext()).load(imgUrl).dontAnimate()//防止设置placeholder导致第一次不显示网络图片,只显示默认图片的问题.placeholder(R.drawable.icon_default).into(mImageView);

--------------------- 作者:erweimaerweima 来源:CSDN 原文:https://blog.csdn.net/lvshuchangyin/article/details/56670157?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!


  • 2021-02-11 15:53:08

    node缓存框架memory-cache

    无论是在 desktop, mobile or web哪一方面,Cache都常被我们用来提升程序性能。当处理web应用程序的时候,虽然可以使用当前所有浏览器都支持的响应头来进行客户端缓存,从而提升页面加载效率。但当一个内容非常繁杂的页面需要2s来进行HTML输出的时候,即使启用客户端缓存该页面,服务器仍然需要针对每一个来访用户进行页面渲染。想想一个大型的新闻门户网站首页,难道他们要针对每一个用户一遍又一遍地处理HTML吗?

  • 2021-02-19 16:46:35

    window安装composer

    Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

  • 2021-02-21 22:52:12

    php去除字符串中的HTML标签

    php自带的函数可以去除/删除字符串中的HTML标签/代码。 strip_tags(string,allow):函数剥去 HTML、XML 以及 PHP 的标签。 参数:string,必填,规定要检查的字符串;allow,选填,规定允许存在的标签,这些标签不会被删除。

  • 2021-03-02 16:00:30

    git pull时的filename too long的错误

    这是因为git在windowa下的文件名长度最大是260,(git在Linux下最大支持4096长度的文件名),可以通过输入以下命令解决: