国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現計步進度的環形Progress

2019-12-12 03:42:17
字體:
來源:轉載
供稿:網友

項目中需要實現一個計步進度的環形Progress,當未達到設定目標時,繪制特定弧度((已實現步數/目標步數)*360°)的圓弧。當已實現步數大于等于目標步數時繪制整個360°圓環。

效果圖:

代碼實現:

設置已完成步數和目標步數:

  public void setStep(int stepDone, int stepGoal) {    this.stepDone = stepDone;    this.stepGoal = stepGoal;    int progess = (stepDone * 100) / stepGoal;    if (progess > 100) {      setProgress(100);    } else {      setProgress(progess);    }  }

設置進度:

  public void setProgress(int progress) {    this.mProgress = progress;    this.invalidate();  }

設置畫筆屬性:

mPaint.setAntiAlias(true);mPaint.setColor(Color.rgb(0xe9, 0xe9, 0xe9));canvas.drawColor(Color.TRANSPARENT);mPaint.setStrokeWidth(LINE_WIDTH_BG);mPaint.setStyle(Paint.Style.STROKE);

繪制環形和背景:

canvas.drawArc(mRectF, -90, 360, false, mPaint);mPaint.setColor(Color.rgb(0xf8, 0x60, 0x30));canvas.drawArc(mRectF, -90, ((float) mProgress / mMaxProgress) * 360, false, mPaint);

繪制步數和單位:

mPaint.setStrokeWidth(TEXT_WIDTH);    String text = stepDone + context.getString(R.string.step_unit);    int textHeight = height / 4;    mPaint.setTextSize(textHeight);    int textWidth = (int) mPaint.measureText(text, 0, text.length());    mPaint.setStyle(Paint.Style.FILL);    canvas.drawText(text, width / 2 - textWidth / 2, height / 2 + textHeight / 4, mPaint);

繪制目標步數:

 String textGoal = "/" + stepGoal;    int textGoalHeight = height / 8;    mPaint.setTextSize(textGoalHeight);    int textGoalWidth = (int) mPaint.measureText(textGoal, 0, textGoal.length());    mPaint.setStyle(Paint.Style.FILL);    canvas.drawText(textGoal, width / 2 - textGoalWidth / 2, height / 2 + textHeight / 2        + textGoalHeight, mPaint);

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尤溪县| 九龙城区| 惠州市| 历史| 平远县| 新疆| 旬邑县| 漾濞| 中超| 丁青县| 游戏| 库尔勒市| 郎溪县| 东山县| 咸丰县| 嘉祥县| 遂昌县| 彰化市| 眉山市| 叶城县| 德庆县| 都江堰市| 普定县| 墨玉县| 海安县| 边坝县| 阜康市| 克拉玛依市| 会宁县| 廊坊市| 泽州县| 鹿泉市| 黑水县| 齐齐哈尔市| 衡东县| 革吉县| 盐山县| 十堰市| 云南省| 剑河县| 当雄县|