自定义控件(六)- 百分比圆形

来源:互联网 发布:2014年网络歌曲排行 编辑:程序博客网 时间:2024/06/06 16:59

在自定义控件(2)里面我们做了一个百变的圆形,那我们就以那个为基础,在外边在加一层能根据百分比进行滚动的圆。
1。要在现有的圆外面添加一层滚动的圆弧,那首先我们先给他设置一个方法,让我们知道应该滚动多少

    //设置目标的百分比    public void setTargetPercent(int percent) {        this.mTargetPercent = percent;    }
  1. 根据自定义的半径属性,画圆弧
    画圆弧,首先得有个矩形:
//画中心园的外接矩形,用来画圆环用,中心点是(CircleX,CircleY)mArcRectF = new RectF(mCircleX-mRadius, mCircleY-mRadius, mCircleX+mRadius, mCircleY+mRadius);

3.先定义一个开始画线的角度,

        //圆环开始角度 -90° 正北方向        mStartSweepValue = -90;        //当前角度        mCurrentAngle = 0;        //当前百分比        mCurrentPercent = 0;

4

        //设置外圆环的画笔        mArcPaint = new Paint();        mArcPaint.setAntiAlias(true);        mArcPaint.setColor(getResources().getColor(R.color.colorPrimary));        mArcPaint.setStyle(Paint.Style.STROKE);        mArcPaint.setStrokeWidth((float) (0.075 * mCircleX));        //画圆环        canvas.drawArc(mArcRectF, mStartSweepValue, mCurrentAngle, false, mArcPaint);        //判断当前百分比是否小于设置目标的百分比        if (mCurrentPercent < mTargetPercent) {            //当前百分比+1            mCurrentPercent += 1;            setmText(mCurrentPercent + "%");            //当前角度+360            mCurrentAngle += 3.6;            //每10ms重画一次            postInvalidateDelayed(10);        }

然后就可以得到支持各种自定义的百分比圆形啦
这里写图片描述
下载地址:http://download.csdn.net/detail/qq_29375071/9388695

0 0