在学习自定义Vew的时候,看到一篇文章,http://blog.youkuaiyun.com/nugongahou110/article/details/49159189,然后顺着其思路写了一下,实现效果如下:
我们要做的事情:实现一个百分比的圆环进度条,包含三部分,分别是:
- 百分比文字
- 背景圆
- 动态圆环
我们要做的思路:
- 先分别绘制对应的图形;
- 使图形能动态变化;
- 文字显示百分比与圆环进度对应;
会涉及到的基本知识点:
- 自定义View 会重写三个方法;
- onMeasure()方法中,测量规则、测量大小、测量模式;
- TypedArray 获取自定义属性;
- canvas 绘制矩形内切圆;
自定义View PercentCircle.java:
public class PercentCircle extends View{
/**
* 绘制百分比的圆,一共有三部分,分别是里面的文字、背景圆、圆环;
* 思路:首先需要三支画笔, 设置画笔对应的属性等;
*/
private Paint mTextPaint;
private Paint mBackgroundPaint;
private Paint mRingPaint;
private int mCircleX;
private int mCircleY;
private float mCurrentAngle;
private RectF mArcRectF;
private float mStartSweepValue;
private float mTargetPercent;
private float mCurrentPercent;
private int mDefaultRadius = 60;
private int mRadius;
private