由于本人使用的华为手机,真是被华为天气的界面圈粉,之前有仿写了其中一个自定义的view,今天带来另一个自定义view,就是其中的风车,先上图
相信大家在其它很多天气软件就看到过。
一、概述
在图中,风车叶子和圆点是在一个自定义View中,而风车的杆子则是另一个自定义View,让它们分开是因为风车叶子是要旋转的,要用到RotateAnimation来控制,到时候就只要让风车叶子所在的View旋转就可以了。
其中风车叶子和杆子都是使用贝塞尔曲线来绘制的。如果对贝塞尔曲线还不了解可以看看徐宜生的这篇博客http://blog.csdn.net/eclipsexys/article/details/51956908。
二、风车叶子的绘制
先来个徒手绘制的概念图
可以看到我们主要有五个坐标点,首先把Path移动到(x1,y1),这里用的是三阶贝塞尔曲线,贝塞尔曲线的两个控制点为(x2,y2),(x3,y3),这两个点的X坐标是相等的,线段的终点为(x4,y4);然后再是二阶贝塞尔曲线,控制点只有一个,为(x5,y5),终点为(x1,y1);
这里绘制好了一片风车叶,然后我们旋转画布120°,绘制一次,再旋转120