如何在Android中自定义一个圆环式进度条

  介绍

如何在Android中自定义一个圆环式进度条?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。

package  com.djt.aienglish.widget;      import  android.content.Context;   import  android.content.res.TypedArray;   import  android.graphics.Canvas;   import  android.graphics.Paint;   import  android.graphics.RectF;   import  android.text.TextUtils;   import  android.util.AttributeSet;   import  android.view.View;      import  com.djt.aienglish.R;            public  class  CirclePgBar  extends  View  {   ,,,private  int  mHeight =, 0;   ,,,private  int  mWidth =, 0;      ,,,//,画圆环的画笔   ,,,private  Paint  mRingPaint;   ,,,//,画圆环的画笔背景色   ,,,private  Paint  mRingPaintBg;   ,,,//,画字体的画笔   ,,,private  Paint  mTextPaint;   ,,,//,圆环颜色   ,,,private  int  mRingColor;   ,,,//,圆环背景颜色   ,,,private  int  mRingBgColor;   ,,,//,半径   ,,,private  float  mRadius;   ,,,//,圆环半径   ,,,private  float  mRingRadius;   ,,,//,圆环宽度   ,,,private  float  mStrokeWidth;   ,,,//,圆心x坐标   ,,,private  int  mXCenter;   ,,,//,圆心y坐标   ,,,private  int  mYCenter;   ,,,//,字的长度   ,,,private  float  mTxtWidth;   ,,,//,字的高度   ,,,private  float  mTxtHeight;   ,,,//,总进度   ,,,private  int  max =, 100;   ,,,//,当前进度   ,,,private  int 进展;   ,,,private  String 文本;      ,,,public  CirclePgBar (Context 上下文,AttributeSet  attrs), {   ,,,,,,,超级(上下文,attrs);   ,,,,,,,//,获取自定义的属性   ,,,,,,,initAttrs(上下文,attrs);   ,,,,,,,initVariable ();   ,,,}      ,,,/* *   ,,,,*,属性   ,,,*/,,,private  void  initAttrs (Context 上下文,AttributeSet  attrs), {   ,,,,,,,TypedArray  typeArray =, context.getTheme () .obtainStyledAttributes (attrs,   ,,,,,,,,,,,,,,,R.styleable.TasksCompletedView,, 0, 0);   ,,,,,,,mStrokeWidth =, typeArray.getDimension (R.styleable.TasksCompletedView_circleWidth, 0);   ,,,,,,,mRingColor =, typeArray.getColor (R.styleable.TasksCompletedView_ringColor, 0 xffffffff);   ,,,,,,,mRingBgColor =, typeArray.getColor (R.styleable.TasksCompletedView_ringBgColor, 0 xffffffff);   ,,,,,,,text =, typeArray.getString (R.styleable.TasksCompletedView_text);   ,,,,,,,max =, typeArray.getInteger (R.styleable.TasksCompletedView_max, 0);   ,,,,,,,progress =, typeArray.getInteger (R.styleable.TasksCompletedView_progress, 0);   ,,,}      ,,,/* *   ,,,,*,初始化画笔   ,,,*/,,,private  void  initVariable (), {   ,,,,,,,//外圆弧背景   ,,,,,,,mRingPaintBg =, new 油漆();   ,,,,,,,mRingPaintBg.setAntiAlias(真正的);   ,,,,,,,mRingPaintBg.setColor (mRingBgColor);   ,,,,,,,mRingPaintBg.setStyle (Paint.Style.STROKE);   ,,,,,,,mRingPaintBg.setStrokeWidth (mStrokeWidth);   ,,,,,,,//外圆弧   ,,,,,,,mRingPaint =, new 油漆();   ,,,,,,,mRingPaint.setAntiAlias(真正的);   ,,,,,,,mRingPaint.setColor (mRingColor);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Android中自定义一个圆环式进度条