介绍
如何在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中自定义一个圆环式进度条