/** * Created by yyf on 2017/12/15. */ public class RoundProgressbar extends View { private Paint mPaint,arcPaint,textPaint;// 创建一个画笔 private float radius=100; //圆环半径 private float roundWidth=10; //圆环宽度 private float textSize=32;//圆环内容字体大小 private float paintTextWidth=1;//绘制圆环内容字体的粗细 private float progress=0;//外环进度 private ValueAnimator valueAnimator;//属性动画 private int duration=5; public RoundProgressbar(Context context) { this(context,null); } public RoundProgressbar(Context context, @Nullable AttributeSet attrs) { this(context, attrs,0); } public RoundProgressbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init(){ mPaint=new Paint(); mPaint.setColor(Color.BLACK); //设置颜色 mPaint.setStyle(Paint.Style.STROKE); //设置空心圆 mPaint.setAntiAlias(true);//抗锯齿 mPaint.setStrokeWidth(roundWidth); arcPaint=new Paint(); arcPaint.setStyle(Paint.Style.STROKE); //设置空心圆 arcPaint.setAntiAlias(true);//抗锯齿 arcPaint.setColor(Color.WHITE); arcPaint.setStrokeWidth(roundWidth); } private static final String TAG = "RoundProgressbar"; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int centerX=getWidth()/2; int centerY=getHeight()/2; canvas.drawCircle(centerX,centerY,radius,mPaint); //画圆环 RectF oval = new RectF( centerX- radius, centerY-radius, centerX+radius, centerY+radius ); //用于定义的圆弧的形状和大小的界限 canvas.drawArc(oval,0, progress,false,arcPaint); } }
圆环进度
最新推荐文章于 2024-05-06 09:42:44 发布