效果图:
具体实现
public class RadarView extends View {
private static final float maxValue = 100; // 最大刻度值
private int count = 5; // 数据个数
private float angle = (float) (Math.PI * 2 / count);
private Paint circlePaint; // 圆环画笔
private float radius; // 最大半径
private int centerX, centerY; // 中心点
private Paint mainCirclePaint; // 整个圆环填充画笔
private Paint graduationValuePaint; // 刻度值画笔
private String[] graduationValues = {"0", "20", "40", "60", "80", "100"};
private Paint titlePaint; // 标签画笔
private String[] titles = {"标签a", "标签b", "标签c", "标签d", "标签f"};
private double[] data = {70, 50, 67, 80, 56};
private Paint dotPaint; // 外环上的圆点画笔
private Paint regionPaint; // 数据区域画笔
private int ten;
public RadarView(Context context) {
super(context);
init();
}
public RadarView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public RadarView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
DisplayMetri