当前位置: 首页 > news >正文

一起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,同时不设置indeterminateindeterminateDrawable属性,在代码中不断地修改它的进度值,示例代码如下:

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来进行。

经验总结

实现无进度值进度条有两种方法:

  • 通过资源文件实现;
  • 通过代码实现;

使用资源文件实现时需要配置indeterminateindeterminateDrawable属性。前者表示无限循环,后者用来设置进度条的风格,设置风格有两种:一种是layer-list包含的图层文件,一种是animation-list包含的动画文件。不过这两种文件都属性drawable文件。

使用代码文件实现时需要配置max属性,然后在代码中通过Handler修改进度值。至于进度条的风格可以通过progressDrawable属性来设置。这个属性参考上一回中的内容就可以。

看官们,关于"无进度值ProgressBar"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

相关文章:

一起Talk Android吧(第五百四十二回:无进度值ProgressBar)

文章目录 概念介绍使用资源文件实现使用默认设置修改风格使用动画资源 使用代码实现经验总结 各位看官们大家好&#xff0c;上一回中咱们说的例子是"ProgressBar总结",本章回中介绍的例子是" 无进度值ProgressBar"。闲话休提&#xff0c;言归正转&#xf…...

Oracle DataGuard奇怪的ORA-16494错误

Oracle数据库DataGuard数据无法同步&#xff0c;主库查询v$archive_dest出现ORA-16494错误。 数据库版本Oracle 12.1.0.2.0&#xff1a; SQL> select * from v$version;BANNER --------------------------------------------------------------------------------CON_ID --…...

《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!

你有没有想过&#xff0c;如果你能在同一个平台上体验多种不同的 AI 模型&#xff0c;和他们进行有趣、有用、有深度的对话&#xff0c;甚至还能轻松地分享你的对话给其他人&#xff0c;那该有多好&#xff1f;如果你有这样的想法&#xff0c;那么你一定不能错过 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 解决&#xff1a; pip install pyOpenSSL --upgrade...

Origin如何绘制基础图形?

文章目录 0.引言1.绘图操作2.图形设置3.图形标注 0.引言 因科研等多场景需要绘制专业的图表&#xff0c;笔者对Origin进行了学习&#xff0c;本文通过《Origin 2022科学绘图与数据》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本文对绘制基础图形进行阐述。 1.…...

OpenGL(九)——颜色

目录 一、前言 二、简单光源 三、光照场景 3.1 创建光源 3.2 光源顶点着色器 3.3 光源片段着色器 3.4 物体片段着色器 3.5 光源位置 一、前言 我们看到的物体颜色是通过光照在物体&#xff0c;然后反射到人眼成像&#xff0c;具体而言是物体不能吸收的颜色。如白光照射…...

Python语言技术指南:探索功能丰富的高级编程语言

引言&#xff1a; Python是一种高级编程语言&#xff0c;以其简洁、易读和功能丰富而闻名。它的设计理念注重代码的可读性和开发者的生产力&#xff0c;使得Python成为众多领域的首选语言。本文将深入探索Python语言的各个方面&#xff0c;包括语法特性、标准库、第三方库和应…...

【YOLO 系列】YOLO v4-v5先验知识

文章目录 输入端Mosaic数据增强Self-Adversarial TrainingCmBN 主干网络Mish激活函数DropBlock 正则化CSPNetFocus结构 NeckPANet 输出目标损失函数IoU LossGIoU LossDIoU LossCIoU Loss总结 DIOU_nms 参考 YOLO v4和v5版本在v3版本的基础上&#xff0c;组合了多种先进算法提升…...

4年外包终于上岸,我只能说别去....

我大学学的是计算机专业&#xff0c;毕业的时候&#xff0c;对于找工作比较迷茫&#xff0c;也不知道当时怎么想的&#xff0c;一头就扎进了一家外包公司&#xff0c;一干就是4年。现在终于跳槽到了互联网公司了&#xff0c;我想说的是&#xff0c;但凡有点机会&#xff0c;千万…...

Nginx快速入门

1.nginx概述 nginx介绍 nginx是一款轻量级的web服务器/方向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力在同类型的网页服务器中表现较好&#xff0c;中国大陆使用nginx的网…...

Leetcode507. 完美数

Every day a leetcode 题目来源&#xff1a;507. 完美数 解法1&#xff1a;枚举 我们可以枚举 num 的所有真因子&#xff0c;累加所有真因子之和&#xff0c;记作 sum。若 sumnum 则返回 true&#xff0c;否则返回 false。 枚举范围从 [1, sum) 的话&#xff0c;会超时&…...

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是一个全球知名的社交媒体平台&#xff0c;几乎每个人都在其中与朋友分享照片、发表状态或留言。 然而&#xff0c;随着时间的推移&#xff0c;Facebook不仅仅局限于社交交流&#xff0c;而是逐渐涉足更广阔的领域&#xff0c;其中之一就是加密货币。在本文…...

利用font-spider对CSS字体进行压缩

ont-spider利器是一款强大的字体压缩工具&#xff0c;可以将网页中的字体压缩到最小&#xff0c;从而节省网络带宽和提高页面加载速度。在实际使用中&#xff0c;font-spider利器对webfont网页字体压缩使用可以让网页字体更加清晰&#xff0c;用户体验更好。 一、font-spider利…...

2023年软考系统架构师新版专栏导读

目录 新的改变软考是不是内卷&#xff1f;老版教材删减章节建议学习计划专栏更文列表 新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材&#xff0c;比第二版多出来140页&#xff0c;虽然看起来好像更难了&#xff0c;但是我认为改版是件好事&#xf…...

时间表体验(2023.05.05-2023.05.06)

2023.05.05 2023.05.04青年节后第一天&#xff0c;然而我的公司并没有在五四下午放假&#xff0c;吐槽一下腾讯IEG。 大晚上出租屋的床塌了&#xff0c;我靠&#xff0c;倒霉&#xff0c;不过还好不要我出钱去修&#xff0c;120斤重的我怎么可能把床压踏呢&#xff1f;&#…...

linux系统查询二进制BIn文件方法

在 Linux 上分析二进制文件的方法有很多&#xff0c;以下是其中几种常见的方法&#xff1a; 使用 objdump 命令 objdump 命令可以显示二进制文件的汇编代码、符号表和其他信息&#xff0c;可以用来分析二进制文件的结构和代码逻辑。例如&#xff1a; objdump -d binaryfile这…...

api接口调用(1688/Taobao/jd平台API接口的调用实例)

api接口调用 CURL 是一个利用URL语法规定来传输文件和数据的工具&#xff0c;支持很多协议&#xff0c;如HTTP、FTP、TELNET等。最爽的是&#xff0c;PHP也支持 CURL 库。使用PHP的CURL 库可以简单和有效地去抓网页。你只需要运行一个脚本&#xff0c;然后分析一下你所抓取的网…...

Python+Yolov5舰船侦测识别

程序示例精选 PythonYolov5舰船侦测识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonYolov5舰船侦测识别>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c…...

Qt5.9学习笔记-事件(五) 事件调试和排查

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的在读研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三…...

社区医院信息平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

&#x1f4a1;实话实说&#xff1a;有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。摘要 随着信息技术的快速发展&#xff0c;医疗行业对信息化管理的需求日益增长。传统的社区医院管理模式存在信息孤岛、数据冗余、效率低下等问题&#…...

openclaw 配置教程:本地安装、网关接入与模型 API 配置完整说明

如果你在折腾 openclaw 配置&#xff0c;通常会发现真正影响使用体验的&#xff0c;不是把程序装上去&#xff0c;而是后面的模型来源怎么接、网关怎么起、控制面板怎么进&#xff0c;以及默认模型如何切换。只要这些环节没有理顺&#xff0c;就算安装完成&#xff0c;后续也很…...

Phi-4-mini-reasoning GPU算力极致利用:单卡并发16路推理压测报告

Phi-4-mini-reasoning GPU算力极致利用&#xff1a;单卡并发16路推理压测报告 1. 模型简介 Phi-4-mini-reasoning是一个轻量级开源模型&#xff0c;专注于高质量推理任务。作为Phi-4模型家族成员&#xff0c;它具备以下核心特点&#xff1a; 推理能力优化&#xff1a;基于合…...

领导说我年终奖1.5万是全公司最高,让我别到处说,结果昨天发工资才知道:私下问了其他人,都比我多一倍,下个月我直接离职走人!

有个哥们说&#xff0c;领导拍着他肩膀跟他说&#xff1a;"你今年年终奖1.5万&#xff0c;全公司最高的&#xff0c;别到处说啊&#xff0c;影响不好。"哥们当时还挺感动&#xff0c;觉得自己被认可了&#xff0c;干了一年值了。结果昨天发工资&#xff0c;他私下一打…...

智慧树网课效率工具:自动化播放与倍速控制插件全解析

智慧树网课效率工具&#xff1a;自动化播放与倍速控制插件全解析 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 在当今在线学习环境中&#xff0c;智慧树作为主流教育…...

Elsevier Tracker:科研投稿状态追踪的自动化解决方案

Elsevier Tracker&#xff1a;科研投稿状态追踪的自动化解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 在学术出版流程中&#xff0c;论文投稿后的状态监控一直是科研人员面临的重要挑战。传统的人工查询方…...

intv_ai_mk11 GPU高效利用:支持FP16+CPU offload混合推理,显存不足时自动降级

intv_ai_mk11 GPU高效利用&#xff1a;支持FP16CPU offload混合推理&#xff0c;显存不足时自动降级 1. 什么是intv_ai_mk11 AI对话机器人 intv_ai_mk11是一款基于7B参数Llama架构的AI对话助手&#xff0c;专门设计用于在GPU服务器上高效运行。这个智能对话系统不仅能回答各类…...

Ivanti EPMM RCE CVE-2026-1340/1281完整分析

介绍&#xff1a;近日,Ivanti公司披露了Ivanti Endpoint Manager Mobile (EPMM)中存在的代码注入漏洞(CVE-2026-1281和CVE-2026-1340)&#xff0c;并确认已存在在野利用。该漏洞源于 Apache HTTPd 调用的 Bash 脚本在处理时间戳比较时&#xff0c;未能有效过滤恶意参数&#xf…...

一个关键词的SEO优化过程中需要注意什么

一个关键词的SEO优化过程中需要注意什么 在数字营销的世界里&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是一个核心的组成部分。其中&#xff0c;关键词优化是SEO策略的关键环节。对于一个关键词的SEO优化过程中&#xff0c;有许多细节需要注意&#xff0c;以确保最…...

掰开揉碎魔改claudecode后,我盯着 Claude Code 跑了一圈,终于看懂顶级 AI Agent是如何炼成的

开头先来一句狠的很多人以为&#xff0c;Claude Code 之所以强&#xff0c;是因为模型更聪明。但我把它运行时真正生效的 Payload 抓出来之后&#xff0c;结论反而更明确了&#xff1a;顶级 AI Agent 的差距&#xff0c;很多时候不在模型本身&#xff0c;而在它背后那套“怎么约…...