是否有可能在android中创建弧形的进度条?
问题描述:
我需要创建一个弧形的进度条。我应该为此创建一个自定义视图吗?或者在ProgressBar类的onDraw()
方法的帮助下,我可以执行这个事情吗?我也想在这个progressBar像温度计上添加标记。请给我建议任何想法。谢谢。是否有可能在android中创建弧形的进度条?
事情是这样的:
protected synchronized void onDraw(Canvas canvas) {
int progress = this.getProgress();
int maxProgress = this.getMax();
//calc the progress to angles
float angleProgress = progress * 360/maxProgress;
//create and set the arc paint
Paint arcPaint = new Paint();
arcPaint.setColor(0xff800000);
arcPaint.setAntiAlias(true);
arcPaint.setStyle(Style.FILL);
Rect arcRect = new Rect(); this.getDrawingRect(arcRect);
canvas.drawArc(new RectF(arcRect), -90, angleProgress,true, arcPaint);
}
对于裁判检查这一形象弧形进度
答
默认进度部件是不容易定制,甚至比这显著不那么雄心勃勃的变化。在我看来,它不会为此提供有价值的行为,除了充当最小值,最大值和当前值的载体之外。它还带来了不必要的功能,例如“不确定”状态。
通过扩展视图并实现onDraw() - 像你一样 - 和onMeasure()来创建自定义视图。
这样的事情是这样的:http://phrogz.net/tmp/canvas_gauge.html它是用Javascript编写的,但使用HTML5画布。如果它是相似的,你可以通过查看源代码来了解如何绘制小部件。 – Jonathan 2012-02-06 11:37:09