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);
}
我需要实现如下图所示的自定义垂直进度条。开头必须是圆圈,结尾必须是箭头。
实现此目标的最佳方法是什么?我不是设计专家,所以我不知道使用 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);
}