一起Talk Android吧(第五百四十二回:无进度值ProgressBar)
文章目录
- 概念介绍
- 使用资源文件实现
- 使用默认设置
- 修改风格
- 使用动画资源
- 使用代码实现
- 经验总结
各位看官们大家好,上一回中咱们说的例子是"ProgressBar总结",本章回中介绍的例子是" 无进度值ProgressBar"。闲话休提,言归正转,让我们一起Talk Android吧!
概念介绍
我们在这里说的无进度值ProgressBar表示进度条从0开始一直变化到最大值,然后反复循环。这种情况用在一些没有具体进度值的过程中,比如搜索无线网络。本章回中我们将介绍如何使用无进度值ProgressBar.
使用资源文件实现
使用默认设置
我们在布局中直接使用默认的进度条,它会产生一个绿色的圆形进度条,示例代码如下:
<ProgressBarandroid:layout_width="match_parent"android:layout_height="60dp">
</ProgressBar>
该代码的运行效果如下:

我们也可以把圆形的进度条换成水平的,它会产生一个绿色的矩形进度条代码如下:
<ProgressBarstyle="@style/Widget.AppCompat.ProgressBar.Horizontal"android:indeterminate="true"android:layout_width="match_parent"android:layout_height="60dp">
</ProgressBar>
注意代码中打开了indeterminate属性,这样才能有反复循环的效果。下面是程序运行的效果图:

修改风格
默认的进度条颜色为绿色(与App的主题有关),我们可以通过修改indeterminateDrawable的属性值来修改它的颜色,示例代码如下:
<ProgressBarstyle="@style/Widget.AppCompat.ProgressBar.Horizontal"android:indeterminate="true"android:indeterminateDrawable="@drawable/progress_bar_indeterminate"android:layout_width="match_parent"android:layout_height="60dp">
</ProgressBar>
<!-- progress_bar_indeterminate.xml的内容如下 -->
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 进度条背景色 -->
<item android:id="@android:id/background"><shape><corners android:radius="6dp" /><gradientandroid:startColor="#33FFFFFF"android:centerColor="#33FFFFFF"android:centerX="0.75"android:endColor="#33FFFFFF"android:angle="0"/></shape>
</item>
<!-- 第二进度条 -->
<item android:id="@android:id/secondaryProgress"><clip><shape><corners android:radius="6dp" /><gradientandroid:startColor="#33FFFFFF"android:centerColor="@color/white"android:centerX="0.75"android:endColor="#33FFFFFF"android:angle="0"/></shape></clip>
</item><!-- 前景进度条-->
<item android:id="@android:id/progress"><clip><shape><corners android:radius="6dp" /><gradientandroid:startColor="@color/white"android:centerColor="#F3A32C"android:centerX="0.5"android:endColor="#ff0000"android:angle="0"/></shape></clip>
</item>
</layer-list>
代码中的颜色是参考默认配色修改的,我们将其修改成了白色->橙色->红色这样的渐变色,此外,为了突出白色和透明色的进度条背景,我们把布局文件的背景修改成了蓝色,下面是该程序的运行效果:

使用动画资源
<ProgressBarstyle="@style/Widget.AppCompat.ProgressBar.Horizontal"android:indeterminate="true"android:indeterminateDrawable="@drawable/line_animation_list"android:layout_width="match_parent"android:layout_height="60dp">
</ProgressBar>
示例代码和上的一样,只是indeterminateDrawable的属性值变成了line_animation_list,这是一个动画文件,该动画文件也是参考源代码文件修改的,只是使用了自已的配色,详细的内容将在后面的章回中介绍。下面是程序的运行效果图:

使用代码实现
在布局文件中给progressBar设置最大进度值为100,同时不设置indeterminate和indeterminateDrawable属性,在代码中不断地修改它的进度值,示例代码如下:
private ProgressBar mProgressBar;
private int value = 0;private class SubHandler extends Handler {@Overridepublic void handleMessage(@NonNull Message msg) {super.handleMessage(msg);if(value == 100) {value %= 100;}mProgressBar.setProgress(value);value++;mSubHandler.sendMessage(message);}
}
这里的核心思路在于进度条的最大进度值为100,每次更新完进度值后把进度值加1,当进度值到达100后将其通过取模恢复为0。注意更新进度值需要通过Handler来进行。
经验总结
实现无进度值进度条有两种方法:
- 通过资源文件实现;
- 通过代码实现;
使用资源文件实现时需要配置indeterminate和indeterminateDrawable属性。前者表示无限循环,后者用来设置进度条的风格,设置风格有两种:一种是layer-list包含的图层文件,一种是animation-list包含的动画文件。不过这两种文件都属性drawable文件。
使用代码文件实现时需要配置max属性,然后在代码中通过Handler修改进度值。至于进度条的风格可以通过progressDrawable属性来设置。这个属性参考上一回中的内容就可以。
看官们,关于"无进度值ProgressBar"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
相关文章:
一起Talk Android吧(第五百四十二回:无进度值ProgressBar)
文章目录 概念介绍使用资源文件实现使用默认设置修改风格使用动画资源 使用代码实现经验总结 各位看官们大家好,上一回中咱们说的例子是"ProgressBar总结",本章回中介绍的例子是" 无进度值ProgressBar"。闲话休提,言归正转…...
Oracle DataGuard奇怪的ORA-16494错误
Oracle数据库DataGuard数据无法同步,主库查询v$archive_dest出现ORA-16494错误。 数据库版本Oracle 12.1.0.2.0: SQL> select * from v$version;BANNER --------------------------------------------------------------------------------CON_ID --…...
《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!
你有没有想过,如果你能在同一个平台上体验多种不同的 AI 模型,和他们进行有趣、有用、有深度的对话,甚至还能轻松地分享你的对话给其他人,那该有多好?如果你有这样的想法,那么你一定不能错过 Poe 一站式 AI…...
AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘
terminal运行报错AttributeError: module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK 解决: pip install pyOpenSSL --upgrade...
Origin如何绘制基础图形?
文章目录 0.引言1.绘图操作2.图形设置3.图形标注 0.引言 因科研等多场景需要绘制专业的图表,笔者对Origin进行了学习,本文通过《Origin 2022科学绘图与数据》及其配套素材结合网上相关资料进行学习笔记总结,本文对绘制基础图形进行阐述。 1.…...
OpenGL(九)——颜色
目录 一、前言 二、简单光源 三、光照场景 3.1 创建光源 3.2 光源顶点着色器 3.3 光源片段着色器 3.4 物体片段着色器 3.5 光源位置 一、前言 我们看到的物体颜色是通过光照在物体,然后反射到人眼成像,具体而言是物体不能吸收的颜色。如白光照射…...
Python语言技术指南:探索功能丰富的高级编程语言
引言: Python是一种高级编程语言,以其简洁、易读和功能丰富而闻名。它的设计理念注重代码的可读性和开发者的生产力,使得Python成为众多领域的首选语言。本文将深入探索Python语言的各个方面,包括语法特性、标准库、第三方库和应…...
【YOLO 系列】YOLO v4-v5先验知识
文章目录 输入端Mosaic数据增强Self-Adversarial TrainingCmBN 主干网络Mish激活函数DropBlock 正则化CSPNetFocus结构 NeckPANet 输出目标损失函数IoU LossGIoU LossDIoU LossCIoU Loss总结 DIOU_nms 参考 YOLO v4和v5版本在v3版本的基础上,组合了多种先进算法提升…...
4年外包终于上岸,我只能说别去....
我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是4年。现在终于跳槽到了互联网公司了,我想说的是,但凡有点机会,千万…...
Nginx快速入门
1.nginx概述 nginx介绍 nginx是一款轻量级的web服务器/方向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网…...
Leetcode507. 完美数
Every day a leetcode 题目来源:507. 完美数 解法1:枚举 我们可以枚举 num 的所有真因子,累加所有真因子之和,记作 sum。若 sumnum 则返回 true,否则返回 false。 枚举范围从 [1, sum) 的话,会超时&…...
c++ 11标准模板(STL) std::vector (九)
定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…...
从Facebook到Diem币:社交媒体巨头在加密货币领域的演变
大家都知道Facebook是一个全球知名的社交媒体平台,几乎每个人都在其中与朋友分享照片、发表状态或留言。 然而,随着时间的推移,Facebook不仅仅局限于社交交流,而是逐渐涉足更广阔的领域,其中之一就是加密货币。在本文…...
利用font-spider对CSS字体进行压缩
ont-spider利器是一款强大的字体压缩工具,可以将网页中的字体压缩到最小,从而节省网络带宽和提高页面加载速度。在实际使用中,font-spider利器对webfont网页字体压缩使用可以让网页字体更加清晰,用户体验更好。 一、font-spider利…...
2023年软考系统架构师新版专栏导读
目录 新的改变软考是不是内卷?老版教材删减章节建议学习计划专栏更文列表 新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材,比第二版多出来140页,虽然看起来好像更难了,但是我认为改版是件好事…...
时间表体验(2023.05.05-2023.05.06)
2023.05.05 2023.05.04青年节后第一天,然而我的公司并没有在五四下午放假,吐槽一下腾讯IEG。 大晚上出租屋的床塌了,我靠,倒霉,不过还好不要我出钱去修,120斤重的我怎么可能把床压踏呢?&#…...
linux系统查询二进制BIn文件方法
在 Linux 上分析二进制文件的方法有很多,以下是其中几种常见的方法: 使用 objdump 命令 objdump 命令可以显示二进制文件的汇编代码、符号表和其他信息,可以用来分析二进制文件的结构和代码逻辑。例如: objdump -d binaryfile这…...
api接口调用(1688/Taobao/jd平台API接口的调用实例)
api接口调用 CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 CURL 库。使用PHP的CURL 库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网…...
Python+Yolov5舰船侦测识别
程序示例精选 PythonYolov5舰船侦测识别 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对<<PythonYolov5舰船侦测识别>>编写代码,代码整洁,规则,…...
Qt5.9学习笔记-事件(五) 事件调试和排查
⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…...
社区医院信息平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
💡实话实说:有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。摘要 随着信息技术的快速发展,医疗行业对信息化管理的需求日益增长。传统的社区医院管理模式存在信息孤岛、数据冗余、效率低下等问题&#…...
openclaw 配置教程:本地安装、网关接入与模型 API 配置完整说明
如果你在折腾 openclaw 配置,通常会发现真正影响使用体验的,不是把程序装上去,而是后面的模型来源怎么接、网关怎么起、控制面板怎么进,以及默认模型如何切换。只要这些环节没有理顺,就算安装完成,后续也很…...
Phi-4-mini-reasoning GPU算力极致利用:单卡并发16路推理压测报告
Phi-4-mini-reasoning GPU算力极致利用:单卡并发16路推理压测报告 1. 模型简介 Phi-4-mini-reasoning是一个轻量级开源模型,专注于高质量推理任务。作为Phi-4模型家族成员,它具备以下核心特点: 推理能力优化:基于合…...
领导说我年终奖1.5万是全公司最高,让我别到处说,结果昨天发工资才知道:私下问了其他人,都比我多一倍,下个月我直接离职走人!
有个哥们说,领导拍着他肩膀跟他说:"你今年年终奖1.5万,全公司最高的,别到处说啊,影响不好。"哥们当时还挺感动,觉得自己被认可了,干了一年值了。结果昨天发工资,他私下一打…...
智慧树网课效率工具:自动化播放与倍速控制插件全解析
智慧树网课效率工具:自动化播放与倍速控制插件全解析 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 在当今在线学习环境中,智慧树作为主流教育…...
Elsevier Tracker:科研投稿状态追踪的自动化解决方案
Elsevier Tracker:科研投稿状态追踪的自动化解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 在学术出版流程中,论文投稿后的状态监控一直是科研人员面临的重要挑战。传统的人工查询方…...
intv_ai_mk11 GPU高效利用:支持FP16+CPU offload混合推理,显存不足时自动降级
intv_ai_mk11 GPU高效利用:支持FP16CPU offload混合推理,显存不足时自动降级 1. 什么是intv_ai_mk11 AI对话机器人 intv_ai_mk11是一款基于7B参数Llama架构的AI对话助手,专门设计用于在GPU服务器上高效运行。这个智能对话系统不仅能回答各类…...
Ivanti EPMM RCE CVE-2026-1340/1281完整分析
介绍:近日,Ivanti公司披露了Ivanti Endpoint Manager Mobile (EPMM)中存在的代码注入漏洞(CVE-2026-1281和CVE-2026-1340),并确认已存在在野利用。该漏洞源于 Apache HTTPd 调用的 Bash 脚本在处理时间戳比较时,未能有效过滤恶意参数…...
一个关键词的SEO优化过程中需要注意什么
一个关键词的SEO优化过程中需要注意什么 在数字营销的世界里,搜索引擎优化(SEO)是一个核心的组成部分。其中,关键词优化是SEO策略的关键环节。对于一个关键词的SEO优化过程中,有许多细节需要注意,以确保最…...
掰开揉碎魔改claudecode后,我盯着 Claude Code 跑了一圈,终于看懂顶级 AI Agent是如何炼成的
开头先来一句狠的很多人以为,Claude Code 之所以强,是因为模型更聪明。但我把它运行时真正生效的 Payload 抓出来之后,结论反而更明确了:顶级 AI Agent 的差距,很多时候不在模型本身,而在它背后那套“怎么约…...
