自定义view进度条案例

来源:互联网 发布:现在在淘宝做动漫周边 编辑:程序博客网 时间:2024/06/03 19:02
//定义进度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);               }         }     } };
@Overrideprotected 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);}
 
原创粉丝点击