这只是一个提示。这只是一个在同一矩形上绘制两个弧的视图:第一个弧的角度范围为0到360。第二个弧的角度范围(从第一个角度开始)从0到一个角度,该角度取决于百分比。
public class PercentView extends View { public PercentView (Context context) { super(context); init(); } public PercentView (Context context, AttributeSet attrs) { super(context, attrs); init(); } public PercentView (Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } private void init() { paint = new Paint(); paint.setColor(getContext().getResources().getColor(R.color.lightblue)); paint.setAntiAlias(true); paint.setStyle(Paint.Style.FILL); bgpaint = new Paint(); bgpaint.setColor(getContext().getResources().getColor(R.color.darkblue)); bgpaint.setAntiAlias(true); bgpaint.setStyle(Paint.Style.FILL); rect = new RectF(); } Paint paint; Paint bgpaint; RectF rect; float percentage = 0; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //draw background circle anyway int left = 0; int width = getWidth(); int top = 0; rect.set(left, top, left+width, top + width); canvas.drawArc(rect, -90, 360, true, bgpaint); if(percentage!=0) { canvas.drawArc(rect, -90, (360*percentage), true, paint); } } public void setPercentage(float percentage) { this.percentage = percentage / 100; invalidate(); }}添加到您的布局:
<bla.bla.PercentView android:id="@+id/percentview" android:layout_width="100dp" android:layout_height="100dp" />



