自定義圓環
今天公司用到一個這東西就寫了一個,
public class BroudProgress extends View {
private Paint mPaint=new Paint();
private int mRoundColor;
private int mRoundPross;
private int mRoundSize;
private int mTextColor;
private int mTextsize;
//畫字型
private int mMax=100;
private int mProgress=50;
public BroudProgress(Context context) {
this(context, null);
}
public BroudProgress(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public BroudProgress(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
TypedArray mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.BroudProgress);
mRoundColor = mTypedArray.getColor(R.styleable.BroudProgress_roundcolor, Color.RED);
mRoundPross = mTypedArray.getColor(R.styleable.BroudProgress_roundProssColor, Color.BLUE);
mRoundSize=mTypedArray.getDimensionPixelSize(R.styleable.BroudProgress_roundSize, 5);
mTextColor = mTypedArray.getColor(R.styleable.BroudProgress_textColor, Color.BLUE);
mTextsize= mTypedArray.getDimensionPixelSize(R.styleable.BroudProgress_textsize, 15);
mTypedArray.recycle();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPaint.setColor(mRoundColor);
mPaint.setStrokeWidth(mRoundSize);
mPaint.setStyle(Paint.Style.STROKE);
float with=getWidth()/2;
float radius=with-mRoundSize/2;
canvas.drawCircle(with,with,radius,mPaint);
//畫字型
float measureText = mPaint.measureText(mProgress + "%");//測量字型的大小
//center - textWidth / 2, center + textSize / 2
float cxtext=with-measureText;
float cytext=with+mTextsize/2;
mPaint.setStrokeWidth(0);
mPaint.setColor(mTextColor);
mPaint.setTextSize(mTextsize);
canvas.drawText(mProgress + "%",cxtext,cytext,mPaint);
//畫弧線
RectF mRectF=new RectF(with-radius,with-radius,with+radius,with+radius);
mPaint.setStrokeWidth(mRoundSize);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(mRoundPross);
canvas.drawArc(mRectF,0,360*mProgress/100,false,mPaint);
}
public void setProgress(int progress){
this.mProgress=progress;
if (progress>100){
progress=100;
}
postInvalidate();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1916/viewspace-2812645/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ios自定義圓環進度條iOS
- 自定義圓環,跟隨手指旋轉角度加減layer
- Android自定義圓形進度條Android
- 自定義檢視---圓角柱狀圖(一)
- [-Flutter 自定義元件-] 圓形進度條Flutter元件
- 分享一個Kotlin 寫的超級 簡單的自定義View,圓環統計KotlinView
- gym建立環境、自定義gym環境
- 自定義圓形進度條控制元件控制元件
- 小米手環錶盤自定義
- 還在用shape、selector,試試自定義圓角元件吧元件
- docker-compose 部署 Apollo 自定義環境Docker
- 永宏BI 自定義繪圖(環狀圖)繪圖
- Android自定義View之圖片外形特效——輕鬆實現圓角和圓形圖片AndroidView特效
- AUTOCAD——圓環
- 封裝自定義圓角方向並且可設定投影的View封裝View
- 強化學習實戰 | 自定義Gym環境強化學習
- 小米手環4自定義太空人錶盤
- Mac 上的 Tomcat 配置及自定義 JRE 環境MacTomcat
- android自定義view(自定義數字鍵盤)AndroidView
- netty自定義Decoder用於自定義協議Netty協議
- CSS 繪製圓環CSS
- 自定義VIEWView
- 自定義SnackBar
- 自定義_ajax
- 自定義 Anaconda
- 自定義ClassLoader
- 自定義QTimeEditQT
- 自定義 tabBartabBar
- tailwind自定義AI
- 自定義 GitGit
- 自定義元件元件
- 自定義表格
- 自定義LinkedList
- 自定義useState
- vue自定義全域性元件(或自定義外掛)Vue元件
- Android 自定義 View:包含多種狀態的下載用圓形進度條AndroidView
- Android 自定義圓形旋轉進度條,仿微博頭像載入效果Android
- 使用 setenv 配置檔案管理 Tomcat 的自定義環境變數Tomcat變數