Android 中的自定义垂直进度条

Custom Vertical Progressbar in Android

我需要实现如下图所示的自定义垂直进度条。开头必须是圆圈,结尾必须是箭头。

实现此目标的最佳方法是什么?我不是设计专家,所以我不知道使用 9png 文件或创建我自己的可绘制对象 class 或其他选项是否更容易。

我已经尝试使用以下 repo https://github.com/halzhang/Android-VerticalProgressBar,但这只会旋转 ProgressBar,它不能像我需要的那样应用自定义视图。

最后,我创建了一个扩展自 View class 的自定义视图,并且覆盖了 onDraw 方法,绘图一条线,一个圆和一个三角形。

检查以下代码:

@Override
protected synchronized void onDraw(Canvas canvas) {
    mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
    mPaint.setColor(getResources().getColor(R.color.grey_300));
    mPaint.setStrokeWidth(STROKE_WIDTH);
    mPaint.setAntiAlias(true);

    canvas.drawLine(centerX, MARGIN, centerX, getHeight() - MARGIN, mPaint);

    canvas.drawCircle(centerX, MARGIN, STROKE_WIDTH, mPaint);

    mPath.reset();
    mPath.moveTo(0, STROKE_WIDTH * 2);
    mPath.lineTo(-STROKE_WIDTH, 0);
    mPath.lineTo(STROKE_WIDTH, 0);
    mPath.close();
    mPath.offset(centerX, getHeight() - TOP_BOTTOM_MARGIN - STROKE_WIDTH);
    canvas.drawPath(mPath, mPaint);
}