导语
这种绘制属于自定义View的基本练习,网络上也有很多案例;可以根据需要将其中的代码进行修改,集成到项目中去:
效果:
很多游戏比赛中会有这种图,用于展示并比较选手的实力,算是比较直观的一种展示方式。
相关代码
自定义View的代码:
public class Polygon extends View {
private int mHeight;
private int mWidth;
//边框的画笔
private Paint mPaint;
//文字的画笔
private Paint textPaint;
//实力区域的画笔
private Paint realPaint;
//正n边型
private int count = 6;
//角度
private float angle = (float) (Math.PI * 2 / count);
//圆的半径
private float r = 50;
//等级分级的个数
private int levelCount = 5;
//一些标注
private String[] explains = {
"反应", "英雄池", "操作", "意识", "大局", "团队"};
//文字大小
private int textSize = 30;
//文字与图形的距离
private int margin = 4;
//实力数据
private int[] realData;
//边框颜色
private int strokeColor = 0xFF000000;
//实力区域颜色
private int strengthColor = 0x800000ff;
//文字颜色
private int textColor = 0xFFFF0000;
//线的粗细
private int strokeWidth = 2;
//坐标
private float x;
private float y;
public Polygon(Context context) {
super(context);
}
public Polygon(Context context, AttributeSet attrs) {
super(context, attrs);
}
public Polygon(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Overri