业务场景
近期遇到一个需求,绘制一个如下的自定义 View ——
最初的想法是先绘制一个中心的灰圆,再绘制外圈的黄色圆弧,再绘制蓝绿色圆弧(此处仅为了讨论坑,不考虑最优绘制方法),于是写下如下代码:
@Override
protected void onDraw(Canvas canvas) {
// 黄弧最外半径
mMR = w * 4 / 21;
// 灰圆半径
mIR = w * 2 / 21;
// stoke 宽度
int width = mMR - mIR;
// 移动画布
canvas.translate(mCenterX, mCenterY);
// 灰圆
mPaint.setColor(ContextCompat.getColor(context, R.color.colorCenter));
canvas.drawCircle(0, 0, mIR, mPaint);
// 黄弧
mPa