先看下效果图
我们再来看一张CSDN的圆角图片
从布局可以看出csdn app 的头像也是圆角的Image,但可以看到,有明显的毛刺感,不知道是csdn 程序员的疏忽还是 我手机的问题,本人手机(小米note)。不知道其他的小伙伴显示效果也是这样。
好回到主题。其实实现圆角Image的方式有很多,今天所讲的是我认为比较简单的一种。首先我们需要了解Xfermode属性,什么意思呢?看一张图你就明白了
这是Xfermode属性的几种模式和效果,简单说明一下
Src和Dst分别是一张矩形和原型图片,当我们设置不同的模式,显示的效果就如上图所示。关于Xfermode这里不过多阐述,免得把大家绕晕了,我们这里只需要关注其中的SrcIn模式,可以看到这个模式取的是两张图片的交集部分。这就好办了,我们通常拿到img图片都是矩形,我们可以利用canvas画一个圆,然后利用SrcIn属性,取img和圆的交集,那么圆角ImageView是不是就轻易实现了呢?
这里先理一下思路,1、自定义两个属性来设置圆角的弧度,以及当前是否画纯圆。2、设置Xfermode属性为SrcIn 。就这简单两步圆角ImageView就实现了,接下来直接上代码。