Android 自定义View PolygonsView多边形能力分析控件,这里就不讲View的绘制流程,就讲实现方法。
先看下效果图:
这里主要的就是绘制多边形的算法:
其实很简单
根据角度计算出顶点的坐标(r为半径,angle为平均角度)
x = r*Math.cos(i*angle);
y = r*Math.sin(i*angle);
这样就可以绘制出所有点的坐标。
先看下面绘制最外层多边形的代码:
类似的方法缩短下半径r就可以画出第一层,第二层的多边形。
接着就是画能力线的算法:
与上面的一样,其实就是r的大小不同;
接着就是绘制文字的算法:
主要要控制文字摆放的位置
1.要在多边形外,所以r要增大点
2.文字的长度会影响摆放的位置,画到多边形里,所以可以减小x坐标调整,按字体大小跟字符串个数调x=x-size*count