android计步器进度条,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计步器进度条,Android实现计步进度的环形Progress相关推荐
- android 自定义 进度条 旋转,Android_Android ProgressBar进度条使用详解,ProgressBar进度条,分为旋转进 - phpStudy...
Android ProgressBar进度条使用详解 ProgressBar进度条,分为旋转进度条和水平进度条,进度条的样式根据需要自定义,之前一直不明白进度条如何在实际项目中使用,网上演示进度条的案 ...
- Android缓冲进度条或加载进度条
缓冲进度条或加载进度条,在加载页面或者视频加载过程中,为了做到更好的UI及App功能体验交互,这些缓冲加载的等待效果是必不可少的: 下面来看一下旋转的动画效果: 那么,他们的具体源码在这里:loadi ...
- android 反向进度条,Android progressBar 正向绘制与反向绘制
image.png xml布局文件 android:id="@+id/progress02" android:layout_width="match_parent&quo ...
- android编程任务进度条,Android 进度条 ProgressBar - Android 入门教程
今天要学的是一个特定场合要用到的控件--进度条控件.进度条的作用不言而喻,而在实际使用中,通常会有两种类型的进度条:横向进度条和圆形进度条.当然,ProgressBar 也是支持这两种类型的,可以应对 ...
- android 进度条图标方形_android 进度条的样式
android 进度条的样式 例1:(默认样式(中等圆形)) android:id="@+id/progressBar1" android:layout_width="w ...
- android 4.2.2进度条,Android实现个性化的进度条
1.案例效果图 2.准备素材 progress1.png(78*78) progress2.png(78*78) 3.原理 采用一张图片作为ProgressBar的背景图片(一般采用颜色比较浅的).另 ...
- android 动态改变进度条,Android条纹进度条的实现(调整view宽度仿进度条)
Android条纹进度条的实现(调整view宽度仿进度条) 发布时间:2020-10-03 16:14:24 来源:脚本之家 阅读:89 作者:RustFisher 前言 本文主要给大家介绍了关于An ...
- android自定义圆角进度条,Android自定义进度条的圆角横向进度条实例详解
1.本文将向你介绍自定义进度条的写法,比较简单,但还是有些知识点是需要注意的: invalidate()方法 RectF方法的应用 onMeasure方法的应用 2.原理 画3层圆角矩形,底层为黑色, ...
- android 签到 进度条,Android 七种进度条的样式
当一个应用在后台执行时,前台界面就不会有什么信息,这时用户根本不知道程序是否在执行.执行进度如何.应用程序是否遇到错误终止等,这时需要使用进度条来提示用户后台程序执行的进度.Android系统提供了两 ...
- 带锚点进度条android,Axure:实现可拖动进度条
原标题:Axure:实现可拖动进度条 怎样用Axure实现拖动进度条?一起来看下吧~ 可拖动进度条的应用场景,例如调节APP屏幕亮度,音乐播放器的音量等. 效果如下(●ˇ∀ˇ●) 准备4个元件,如下所 ...
最新文章
- 提升 DevOps 效率,试试 ChatOps 吧!
- php读取xml的值,PHP读取XML 值
- http:(2):http请求方法
- Duplicate entry ‘‘ for key ‘***‘
- vue 高德地图搜索功能_VUE中使用高德地图做轨迹添加功能,帮助轨迹展示
- ASP.net中实现双表格同步缩放不变形
- junit不启用事务_JUnit禁用启用测试
- linux date -d 的一些使用方法
- 全角字符unicode码对应表
- QR码与DM码的区别
- 十天学会单片机Day4串行口通信
- java基础语法(三)--运算符、控制语句
- elementui 多选框的使用
- 微信支付计算机,微信电脑版怎么支付?怎么开通微信支付?
- Pytorch 操作整理
- ktv点歌系统主界面java_欢迎进入MyKTV前后台点歌系统展示
- BIGEMAP添加在线地图地图数据源
- 蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
- Dharma勒索软件继续大肆传播,据称已有100多家希腊网站沦陷
- XP 操作系统安全防范
热门文章
- java代理模式-原来你是这样的代理
- r语言t检验输出检验统计量_[转载]R语言:常用统计检验
- 补发DAL层SQLHelper
- EXCEL常见问题五十问题解答
- 股票盯盘助手(才152KB),支持悬浮并置顶,支持拖到任务栏,支持更改刷新频率
- 聊聊中国智能照明市场以及前景
- mysql config win.h_mysql-python安装错误:无法打开包含文件'config-win.h'
- 计算机操作系统原理第二章习题
- 影视级调色lut预设包 Triune Color Cinematic LUTs V2
- php模拟登录教学视频,php使用curl模拟登录人人(校内)网_PHP教程