android 饼图进度框,如何创建循环进度条(饼图),如指标 – Android

您可以自定义视图(例如PieProgressView)或自定义Drawable(例如PieProgressDrawable).我采取了定制视图的方法,但是完全可行.

快速浏览Android的ProgressView源代码是一个非常复杂的实现.显然,他们涵盖了所有的基础,但你不必写一些复杂的东西.我们真的只需要两件事情:

>成员跟踪当前进度.

>根据当前进度绘制饼图的方法.

第一个很容易,只需保留一个成员字段来跟踪饼图的当前百分比.数字2有点复杂,但幸运的是,我们可以使用标准的画布绘制方法.

方便的是,Android的Canvas类提供了drawArc()的方法.你可以用它来获得你的饼干效果.假设我们将一个名为mPercent的成员字段的百分比存储为0到1之间的浮点数,则onDraw()方法可能如下所示:

@Override

protected void onDraw(Canvas canvas) {

final float startAngle = 0f;

final float drawTo = startAngle + (mPercent * 360);

// Rotate the canvas around the center of the pie by 90 degrees

// counter clockwise so the pie stars at 12 o'clock.

canvas.rotate(-90f, mArea.centerX(), mArea.centerY());

canvas.drawArc(mArea, startAngle, drawTo, true, mPaint);

// Draw inner oval and text on top of the pie (or add any other

// decorations such as a stroke) here..

// Don't forget to rotate the canvas back if you plan to add text!

...

}

以下是示例应用程序中完成的视图:

编辑

自从发布以来,我决定实际上没有理由实现自定义视图.你可以简单地使用一个drawable,它的level属性可以完成所需要的.我做了gist with the full drawable.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值