Android实现计步进度的环形Progress
发布时间 - 2026-01-10 23:07:27 点击率:次项目中需要实现一个计步进度的环形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计步进度Progress
# Android环形进度Progress
# Android计步环形进度
# Android实现环形进度条
# Android自定义环形LoadingView效果
# Android自定义View实现环形进度条的思路与实例
# Android实现环形进度条的实例
# Android实现环形进度条代码
# Android应用中炫酷的横向和环形进度条的实例分享
# Android中制作进度框和环形进度条的简单实例分享
# Android环形进度条(安卓默认形式)实例代码
# android自定义环形对比图效果
# 大家多多
# progress
# setProgress
# invalidate
# mProgress
# progess
# stepGoal
# gt
# mPaint
# rgb
# drawColor
# canvas
# true
# setAntiAlias
# Color
# setColor
# text
# style
# center
# align
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
怎样使用JSON进行数据交换_它有什么限制
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
如何在云虚拟主机上快速搭建个人网站?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何用AWS免费套餐快速搭建高效网站?
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
详解jQuery中的事件
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
高端建站三要素:定制模板、企业官网与响应式设计优化
简单实现jsp分页
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
C#如何调用原生C++ COM对象详解
如何自定义建站之星网站的导航菜单样式?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
高防服务器租用指南:配置选择与快速部署攻略
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何用y主机助手快速搭建网站?
,在苏州找工作,上哪个网站比较好?
Laravel如何处理表单验证?(Requests代码示例)
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
香港服务器部署网站为何提示未备案?
bing浏览器学术搜索入口_bing学术文献检索地址
详解Android中Activity的四大启动模式实验简述
Python高阶函数应用_函数作为参数说明【指导】
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
googleplay官方入口在哪里_Google Play官方商店快速入口指南
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
深圳网站制作平台,深圳市做网站好的公司有哪些?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
北京专业网站制作设计师招聘,北京白云观官方网站?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何快速生成可下载的建站源码工具?
如何实现建站之星域名转发设置?
如何快速生成橙子建站落地页链接?
Laravel如何使用模型观察者?(Observer代码示例)
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
怎么用AI帮你设计一套个性化的手机App图标?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
如何用VPS主机快速搭建个人网站?
如何用西部建站助手快速创建专业网站?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】

