当前位置: 首页 > 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;喜欢的小伙伴给个三…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...