日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android View實(shí)現(xiàn)圓形進(jìn)度條

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

本文實(shí)例為大家分享了Android View實(shí)現(xiàn)圓形進(jìn)度條的具體代碼,供大家參考,具體內(nèi)容如下

主要涉及到下面幾個(gè)方法:

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

其次就是對(duì)坐標(biāo)的計(jì)算,還有注意就是畫(huà)圓弧的時(shí)候,起始從-90度開(kāi)始才是垂直上方。效果圖:

Android View實(shí)現(xiàn)圓形進(jìn)度條

自定義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); } // 設(shè)置值 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' />

最后,我們?cè)O(shè)置其點(diǎn)擊效果,并開(kāi)始耗時(shí)操作模擬:

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(); }});

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆国产欧美日韩综合精品二区| 人在线成免费视频| 日韩av字幕| 欧美日韩国产v| 亚洲aa在线| 欧洲精品一区二区三区| 日韩成人精品一区二区三区| 久久久亚洲一区| 国产精品流白浆在线观看| 亚洲欧美日韩国产| 久久国产成人| 国产婷婷精品| 91tv亚洲精品香蕉国产一区| 精品99在线| 欧美日韩国产一区二区在线观看| 四虎国产精品免费久久| а√在线中文在线新版| 成人av二区| 人人精品亚洲| 日韩欧美一区二区三区在线观看| 综合国产在线| 电影天堂国产精品| 国产女优一区| 欧美日韩国产一区精品一区| 国产精品videossex| 国产麻豆综合| 亚洲精品综合| 麻豆一区二区三| 99久久www免费| 国产精品v一区二区三区| 午夜精品福利影院| 久久免费国产| 九九综合九九| 国产精品亚洲人成在99www| 91精品在线观看国产| 日韩电影在线视频| 在线亚洲人成| 久久免费精品| 综合激情视频| 国产亚洲人成a在线v网站 | 亚洲成av人片一区二区密柚| 国产精品亚洲人成在99www| 欧美特黄一级大片| 91在线成人| 欧美91视频| 日韩一区二区三区免费视频 | 国产精品jk白丝蜜臀av小说| 一区二区三区四区在线看| 欧美日韩亚洲国产精品| 精品日韩一区| 亚洲一区av| av资源中文在线| 蜜臀久久99精品久久久画质超高清| 国产精品对白| 亚洲v在线看| 亚洲最大av| 韩国久久久久久| 99亚洲精品| 日韩激情一区二区| 国产一区不卡| 激情六月综合| 亚洲精品日本| 国产欧美久久一区二区三区| 久久婷婷久久| 久久香蕉国产| 国产乱码精品| 午夜欧美精品久久久久久久| 国产精品99在线观看| 国产高清一区| 最近国产精品视频| 免费视频一区三区| 国产精品99久久久久久董美香| 久久影院一区二区三区| 国产欧美一区二区三区国产幕精品 | 欧美久久亚洲| 欧美粗暴jizz性欧美20| 国产精品亚洲欧美| 在线精品一区二区| 1000部精品久久久久久久久| 日韩激情精品| 久久久久久久久久久9不雅视频| 日韩精品一区二区三区中文在线| 日韩免费精品| 欧美日韩黑人| 亚洲一区观看| 久久久久99| 美女视频黄久久| 精品72久久久久中文字幕| 国产精品久一| 午夜影院欧美| 欧美日韩免费看片| 蜜桃视频一区二区| 精品一级视频| 国产免费久久| 日韩一区二区三区精品视频第3页| 99综合视频| 日本不良网站在线观看| 日韩在线不卡| 国产欧美日韩综合一区在线播放| 深夜日韩欧美| 亚洲影院天堂中文av色| 久久夜夜操妹子| 国产欧美日本| 精品国产欧美| 嫩呦国产一区二区三区av| 综合一区av| 国产高清亚洲| 日韩精品一页| 在线视频观看日韩| 久久精品色播| 日韩成人免费| 日韩va亚洲va欧美va久久| 亚洲开心激情| 亚洲深夜福利| 欧美日韩一区二区三区在线电影| 国产精品一页| 欧美日韩国产一区二区在线观看| 婷婷精品在线| 欧美亚洲国产一区| 日韩av电影一区| а√在线中文在线新版| 日av在线不卡| 日韩一区免费| 国产成人精品亚洲线观看| 亚洲一级黄色| 国产日韩免费| 久久久精品国产**网站| 狠狠久久婷婷| 亚洲性视频在线| 麻豆久久久久久| 国产精品超碰| 国产在线成人| 国产精品久久久久久av公交车| 日韩精品视频在线看| 亚洲毛片视频| 午夜欧美精品| 水蜜桃久久夜色精品一区| 欧美日韩1区| 日本在线啊啊| 欧美日本久久| 久久九九精品| 日本不卡视频在线观看| 视频一区免费在线观看| 亚洲成人精选| 日韩视频不卡| 狠狠爱www人成狠狠爱综合网| av成人国产| 亚洲综合电影| 视频一区中文| 性欧美69xoxoxoxo| 99成人在线视频| 国产精品久一| 久久精品影视| 日韩中文字幕区一区有砖一区| 亚洲91精品| 国产激情一区| 日韩精品一区二区三区免费观影 | 日韩在线短视频| 精品一区二区三区在线观看视频| 在线日韩电影| 亚洲91视频| 久久wwww| 久久国产日韩| 亚洲国产福利| 久久精品 人人爱| 日本国产欧美| 在线精品国产亚洲| 丝袜美腿一区| 麻豆国产91在线播放| 亚洲激情另类| 午夜精品免费| 日韩精品亚洲aⅴ在线影院| 天堂√中文最新版在线| 岛国av免费在线观看| 日韩免费视频| 亚洲精品日韩久久| 美女尤物久久精品| 久久精品亚洲| 日韩av在线播放网址| 久久激情五月婷婷| 国产欧美69| 国产99久久| 99久久婷婷| 九九精品调教| 欧美色综合网| 亚洲成人一区在线观看| 欧美精品国产一区| 亚洲制服少妇| 成人精品中文字幕| 精品国产欧美| 青青国产91久久久久久| 一区在线免费观看| av资源亚洲| 国产精品成人**免费视频| 亚洲综合日本| 欧美va天堂| 美女久久一区| 国产aⅴ精品一区二区三区久久| 亚洲精品系列| 欧美精品激情|