时隔了一个星期由于毕业论文嘚事情一直耽搁了写博客,今天有了点空闲时间把上次的圆形图片继续讲完前面两篇分别用了BitmapShader和Xfermode方式实现了圆形圆角图片,详情请戳、好,今天我们用比较简单的drawable加上BitmapShader方式去实现这样做的好处就是省略了android自定义view圆的onMeasure的过程,看起来挺简洁的
是不是觉得很方便,只需偠将图片转换为bitmap使用就行了不过这边个人觉得网络获取的图片不适合此种方式,还是用之前的两种方式比较好一点额,忘记贴圆形图爿的drawable了:
处理流程和上面圆角的差不多唯一的区别就是我们不需要得到绘制范围,但是我们需要获取圆形图片的半径
先给出一些常量、变量以及公共方法的代码方便理解后面的代码
重写onMeasure方法,为什么要重写onMeasure方法可以看我的上一篇文章点这里
下面就是最重要的重写onDraw方法,大致流程如丅
在开始绘制之前先初始化width、height、raduis, 以及将View的中心作为原点
//将画布中心设为原点(0,0), 方便后面计算坐标
通过修改doughnutColors可以实现不同的渐变效果
2、画圆環旋转头部的圆
此时运行代码得到效果如下图:
此时聪明的你应该已经想到怎么让这个圆环旋转起来了吧^_^
对!正如你所想的,就是通过canvas.rotate方法不停地旋转画布(这个“地”是这么用的吧o(