自定义view CircleProgressBar

来源:互联网 发布:淘宝店铺首页全屏大图 编辑:程序博客网 时间:2024/06/10 12:46
public class CircleProgressBar extends View{  private int maxProgress = 100;  RectF oval = new RectF();  Paint paint = new Paint();  private int progress = 0;  private int progressStrokeWidth = 4;  public CircleProgressBar(Context paramContext, AttributeSet paramAttributeSet)  {    super(paramContext, paramAttributeSet);  }  public int getMaxProgress()  {    return this.maxProgress;  }  protected void onDraw(Canvas paramCanvas)  {    super.onDraw(paramCanvas);    int width = getWidth();    int height = getHeight();    int j = height;    int i = width;    if (width != height)    {      j = Math.min(width, height);      i = j;    }    this.paint.setAntiAlias(true);    this.paint.setColor(-1);    paramCanvas.drawColor(0);    this.paint.setStrokeWidth(this.progressStrokeWidth);    this.paint.setStyle(Paint.Style.STROKE);    this.oval.left = (this.progressStrokeWidth / 2);    this.oval.top = (this.progressStrokeWidth / 2);    this.oval.right = (i - (this.progressStrokeWidth / 2));    this.oval.bottom = (j - (this.progressStrokeWidth / 2));    this.paint.setColor(Color.parseColor("#4cd964"));    paramCanvas.drawArc(this.oval, -90.0F, 360.0F * this.progress / this.maxProgress, false, this.paint);  }  public void setMaxProgress(int paramInt)  {    this.maxProgress = paramInt;  }  public void setProgress(int paramInt)  {    this.progress = paramInt;    invalidate();  }  public void setProgressNotInUiThread(int paramInt)  {    this.progress = paramInt;    postInvalidate();  }}
0 0
原创粉丝点击