成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Android View實現圓形進度條

瀏覽:124日期:2023-02-10 08:01:52

本文實例為大家分享了Android View實現圓形進度條的具體代碼,供大家參考,具體內容如下

主要涉及到下面幾個方法:

// 畫圓canvas.drawCircle// 畫圓弧canvas.drawArc// 畫文本canvas.drawText// 抗鋸齒paint.setAntiAlias(true);// 設置顏色paint.setColor(getResources().getColor(mFgColor, null));

其次就是對坐標的計算,還有注意就是畫圓弧的時候,起始從-90度開始才是垂直上方。效果圖:

Android View實現圓形進度條

自定義View:

public class MyView extends View { // 線寬度 private static final int mStrokeWidth = 50; private int mVal = 0; private static final int mMaxVal = 200; private int mGgColor = R.color.arcbg; private int mFgColor = R.color.arcfg; public MyView(Context context) {super(context); } public MyView(Context context, @Nullable AttributeSet attrs) {super(context, attrs); } // 設置值 public void setProgressValue(int val){this.mVal = val;invalidate(); } @Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);int width = getMeasuredWidth();int height = getMeasuredHeight();drawBGCircle(canvas, width, height);drawFGArc(canvas, width, height);drawText(canvas, width, height); } // 文本 private void drawText(Canvas canvas, int width, int height) {Paint paint = new Paint();paint.setAntiAlias(true);paint.setColor(getResources().getColor(mFgColor, null));paint.setTextSize(120);int percent = (int) (( mVal / (float) mMaxVal ) * 100);canvas.drawText(percent + '%', (width - paint.measureText(percent + '%')) / 2, (height + paint.measureText('%')) / 2, paint); } // 圓弧 private void drawFGArc(Canvas canvas, int width, int height) {Paint paint = new Paint();paint.setColor(getResources().getColor(mFgColor, null));paint.setStyle(Paint.Style.STROKE);paint.setStrokeWidth(mStrokeWidth);paint.setAntiAlias(true);RectF mRectF = new RectF(mStrokeWidth, mStrokeWidth, width - mStrokeWidth, height - mStrokeWidth);int sweepAngle = (int) (360 * mVal / (float) mMaxVal);canvas.drawArc(mRectF, -90, sweepAngle, false, paint); } // 底部圓形 private void drawBGCircle(Canvas canvas, int width, int height) {int r = (width - 2 * mStrokeWidth) / 2;Paint cPaint = new Paint();cPaint.setColor(getResources().getColor(mGgColor, null));cPaint.setStyle(Paint.Style.STROKE);cPaint.setStrokeWidth(mStrokeWidth);cPaint.setAntiAlias(true);canvas.drawCircle(width / 2, height / 2, r, cPaint); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);int width = getSize(widthMeasureSpec, 200);int height = getSize(heightMeasureSpec, 200);setMeasuredDimension(width, height); } private int getSize(int widthMeasureSpec, int defultSize) {int realSize = defultSize;int mode = MeasureSpec.getMode(widthMeasureSpec);int size = MeasureSpec.getSize(widthMeasureSpec);switch (mode){ case MeasureSpec.UNSPECIFIED:realSize = defultSize;break; case MeasureSpec.AT_MOST:realSize = size;break; case MeasureSpec.EXACTLY:realSize = size;break;}return realSize; }}

然后在布局文件中引用:

<com.weizu.myapplication.view.MyViewandroid: android:layout_width='150dp'android:layout_height='150dp'app:layout_constraintBottom_toBottomOf='parent'app:layout_constraintEnd_toEndOf='parent'app:layout_constraintStart_toStartOf='parent'app:layout_constraintTop_toTopOf='parent' />

最后,我們設置其點擊效果,并開始耗時操作模擬:

MyView view = findViewById(R.id.myView);view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {new Thread(new Runnable() { @Override public void run() {int val = 0;while(val <= 200){ view.setProgressValue(val); val++; try {Thread.sleep(20); } catch (InterruptedException e) {e.printStackTrace(); }} }}).start(); }});

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美一级一区二区| 老司机午夜精品视频在线观看| 好吊一区二区三区| 91福利国产精品| 一区二区三区在线观看动漫| 成人黄色综合网站| 欧美精品在线一区二区| 丝袜脚交一区二区| 国产欧美日韩亚洲| 亚洲视频一区二区在线| 一区二区自拍| 国产精品你懂的在线| 欧美日韩理论| 国产精品乱码一区二区三区软件 | 国产传媒一区在线| 91黄色小视频| 天堂一区二区在线| 国产女主播一区二区三区| 亚洲免费在线观看| 亚洲视频一二| 亚洲婷婷在线视频| 欧美高清视频一区| 精品国产污网站| a美女胸又www黄视频久久| 欧美一区二区三区白人| 国产伦精一区二区三区| 91精品久久久久久久久99蜜臂| 国产一区二区日韩精品| 欧美乱熟臀69xxxxxx| 国产精品影视在线| 日韩欧美色综合网站| 成人黄页在线观看| 亚洲国产精品ⅴa在线观看| 激情综合自拍| 亚洲精选视频免费看| 午夜一区二区三区不卡视频| 丝袜美腿高跟呻吟高潮一区| 欧美亚洲另类激情小说| 精品伊人久久久久7777人| 欧美伦理电影网| 国产精品一级黄| 精品不卡在线视频| 欧美日韩亚洲一区三区| 亚洲色图欧洲色图婷婷| 亚洲欧美99| 毛片av一区二区三区| 91精品久久久久久久99蜜桃| 91麻豆精品在线观看| 一区二区三区欧美视频| 欧美亚洲愉拍一区二区| 成人午夜免费电影| 久久久久国产精品厨房| 亚洲高清视频一区| 天堂久久一区二区三区| 91精品黄色片免费大全| 欧美一区二区三区在线播放| 亚洲激情第一区| 欧美日韩一级大片网址| 91在线免费播放| 亚洲男帅同性gay1069| 老司机精品视频网站| 国产精品77777| 亚洲国产精品传媒在线观看| 亚洲欧美日韩精品久久久 | 国产亚洲精品资源在线26u| 99视频精品| 韩国女主播成人在线| 国产欧美日韩久久| 国产精品毛片一区二区三区| 另类综合日韩欧美亚洲| 精品成人私密视频| 亚洲精品国产日韩| 久久99精品久久久久久国产越南| 精品国产91亚洲一区二区三区婷婷 | 美脚の诱脚舐め脚责91| 久久精品在线免费观看| 亚洲永久字幕| 国产精品123| 综合久久一区二区三区| 欧美日韩国产影片| 欧美三级小说| 日韩国产一二三区| 久久久久久久性| 久久精品三级| 成人动漫一区二区在线| 亚洲一区二区三区三| 日韩欧美在线一区二区三区| 99视频一区| 国产99久久久精品| 亚洲激情在线播放| 日韩精品一区在线| 亚洲综合精品四区| 国产99久久久国产精品| 一级做a爱片久久| 欧美电影免费观看完整版| 亚洲青涩在线| 蜜桃视频第一区免费观看| 久久久精品国产免费观看同学| 国产亚洲永久域名| heyzo一本久久综合| 日韩精品亚洲一区二区三区免费| 久久久99久久| 在线欧美日韩国产| 韩日视频一区| 国产乱码精品一区二区三区五月婷| 一区二区中文字幕在线| 欧美一级生活片| 亚洲综合激情| 欧美日韩少妇| 国产精品一区二区在线观看不卡| 亚洲精品国产a久久久久久| 91精品国产综合久久精品| 性色一区二区| 欧美精品午夜| 国产一区二区三区香蕉| 一区二区在线看| 亚洲精品一区二区三区福利| 在线亚洲高清视频| 欧美三区在线| 成人三级在线视频| 日韩vs国产vs欧美| 国产精品久久久久久亚洲伦 | 精久久久久久久久久久| 综合电影一区二区三区 | 黄色日韩三级电影| 亚洲福中文字幕伊人影院| 中文字幕电影一区| 欧美久久久久久久久久| 国产精品日本欧美一区二区三区| 女同性一区二区三区人了人一 | 国产精品一二| 国语精品中文字幕| 成人avav影音| 国内精品亚洲| 99久久伊人网影院| 国内外成人在线| 午夜一区二区三区视频| 最新中文字幕一区二区三区 | 国产乱码精品一品二品| 日韩高清在线观看| 亚洲午夜久久久久久久久久久 | 日韩一二三四区| 精品视频在线看| 免播放器亚洲| 一本色道久久综合| 欧美午夜国产| 欧美伊人久久| av一二三不卡影片| 成人午夜激情在线| 国产精品影视在线| 精品亚洲国内自在自线福利| 日本成人在线不卡视频| 婷婷开心激情综合| 亚洲丰满少妇videoshd| 亚洲精品乱码久久久久久黑人| 亚洲国产高清在线| 国产片一区二区| 久久久精品中文字幕麻豆发布| 久久亚洲综合色一区二区三区| 欧美一区二区三区免费视频 | 日韩国产在线观看一区| 国产精品嫩草99a| 国产视频911| 久久一日本道色综合| 久久综合精品国产一区二区三区| 91精品国产色综合久久不卡蜜臀 | 国产精品美女久久福利网站| 国产亚洲综合在线| 久久久综合精品| 精品国产乱码久久久久久浪潮| 日韩一区二区三区在线| 91精品国产综合久久精品| 欧美精品一二三区| 色婷婷久久久亚洲一区二区三区| 久久99伊人| 久久综合电影| 老司机精品久久| 91成人在线免费观看| 色嗨嗨av一区二区三区| 欧美在线制服丝袜| 欧美日韩一区二区三区在线| 欧美日韩在线三级| 欧美群妇大交群的观看方式| 欧美日韩国产一二三| 欧美高清视频一二三区| 日韩三级在线免费观看| 久久这里只精品最新地址| 国产亚洲精品资源在线26u| 日本一区二区三区国色天香 | 欧美一区二区精品| 日韩精品一区二| 久久久99久久| 国产精品久久久久久久久免费桃花| 综合电影一区二区三区| 亚洲综合激情小说| 亚洲444eee在线观看| 日本网站在线观看一区二区三区 | 极品少妇一区二区三区精品视频 | 日韩视频永久免费| 久久综合狠狠综合久久综合88 |