Android实现计步进度的环形Progress
更新时间:2017年02月17日 11:56:41 作者:周木水
这篇文章主要为大家详细介绍了Android实现计步进度的环形Progress,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
项目中需要实现一个计步进度的环形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);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Android EdText编辑框禁止输入表情符号(使用正则表达式)
这篇文章主要介绍了Android EdText编辑框禁止输入表情符号使用正则表达式,需要的朋友可以参考下2017-06-06Android 用Time和Calendar获取系统当前时间源码分享(年月日时分秒周几)
这篇文章主要介绍了Android 用Time和Calendar获取系统当前时间源码分享,包括年月日时分秒周几的源码,非常不错,具有参考借鉴价值,需要的朋友参考下2017-01-01解决android Listview的item中最外层Margin失效的问题
下面小编就为大家带来一篇解决android Listview的item中最外层Margin失效的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-04-04android 微信抢红包工具AccessibilityService实现详解
这篇文章主要为大家介绍了android 微信抢红包工具AccessibilityService实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-02-02
最新评论