//定义进度 private int pro=0; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==0){ if(pro<100){ pro++; postInvalidate(); handler.sendEmptyMessageDelayed(0,10); } } } };
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint=new Paint(); //样式 paint.setStyle(Paint.Style.STROKE); //颜色 paint.setColor(Color.RED); //线框 paint.setStrokeWidth(1); paint.setAntiAlias(true); canvas.drawCircle(getMeasuredWidth()/2,getMeasuredHeight()/2,getMeasuredWidth()/2,paint); //绘制弧线 RectF rectF = new RectF(0, 0, getMeasuredWidth(), getMeasuredHeight()); paint.setColor(Color.BLACK); paint.setStrokeWidth(5); canvas.drawArc(rectF,-90,360*pro/100,false,paint); //创建文字的样式 paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.FILL); String text=pro+"%"; paint.setTextSize(50); paint.setStrokeWidth(2); Rect rect = new Rect(); paint.getTextBounds(text,0,text.length(),rect); //画文字 canvas.drawText(text,getMeasuredWidth()/2-rect.width()/2,getMeasuredHeight()/2+rect.height()/2,paint); } //创建开启线程的方法 public void state(){ handler.sendEmptyMessageDelayed(0,100); }