最近公司需要做一个扇形按钮,没有现成的控件,所以只能自己去自定义。
大致需求如下:
其一:分为四个模块,可以点击任何模块,然后进行不同业务操作
其二:点击时,文字随之变化
效果如下:
实现思路及其简要代码:
1,绘制背景 :
//定义画笔
paint.setColor(circleColor);
paint.setStrokeWidth(circleWidth);
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.STROKE);
float x = (getWidth() - getHeight() / 2) / 2;
float y = getHeight() / 4;
//绘制半圆
RectF oval = new RectF(x, y, getWidth() - x, getHeight() - y);
canvas.drawArc(oval, 90, -180, false, paint);
//绘制隔线
paint.setColor(backgroundColor);
paint.setStyle(Paint.Style.FILL);
paint.setStrokeWidth(5);//圆环隔线的宽度
canvas.drawLine(center, center, center, 0, paint);
canvas.drawLine(center, center, (float) (center + 0.5 * cent