安卓进度条:ProgressBar和Seekbar

一、ProgressBar进度条介绍

   ProgressBar 是 Android 中的一个进度条控件,用于显示正在进行的任务的进度。它可以以水平或圆形的形式展示进度,并提供了多种样式和属性来满足不同的需求。

相关属性:

  1. android:progress:设置进度条的当前进度值。
  2. android:max:设置进度条的最大值。
  3. android:indeterminate:设置进度条是否为不确定模式。
  4. android:progressDrawable:设置进度条的进度条 Drawable,可以是一个 Drawable 资源。
  5. android:indeterminateDrawable:设置进度条的不确定模式的 Drawable,可以是一个 Drawable 资源。
  6. android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!

常用方法: 

  1. setProgress(int progress):设置进度条的当前进度值。
  2. setMax(int max):设置进度条的最大值。
  3. getProgress():获取当前进度条的进度值。
  4. getMax():获取进度条的最大值。
  5. setIndeterminate(boolean indeterminate):设置进度条是否为不确定模式,即不显示具体进度而只显示一个动画效果。
  6. isIndeterminate():判断进度条是否为不确定模式。
  7. setVisibility(int visibility):设置进度条的可见性,可以是 VISIBLEINVISIBLE 或 GONE
  8. setProgressDrawable(Drawable drawable):设置进度条的进度条 Drawable,可以是一个 Drawable 对象或资源 ID。
  9. setIndeterminateDrawable(Drawable drawable):设置进度条的不确定模式的 Drawable,可以是一个 Drawable 对象或资源 ID。

二、SeekBar 介绍:

  SeekBar 是 Android 中的一个可滑动条控件,用于允许用户通过滑动来选择一个数值或调整某种设置。它通常用于音量控制、亮度调节、进度选择等场景。SeekBar 继承自 ProgressBar 类。

常用方法:

以下是 SeekBar 常用的方法:

  1. setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener listener):设置 SeekBar 的监听器,用于监听滑动事件和数值变化事件。
  2. setMax(int max):设置 SeekBar 的最大值。
  3. getMax():获取 SeekBar 的最大值。
  4. setProgress(int progress):设置 SeekBar 的当前进度值。
  5. getProgress():获取 SeekBar 的当前进度值。
  6. setThumb(Drawable thumb):设置滑块(Thumb)的图像,可以是一个 Drawable 对象或资源 ID。
  7. setThumbOffset(int thumbOffset):设置滑块的偏移量,可调整滑块的位置。
  8. getThumb():获取当前 SeekBar 使用的滑块图像。
  9. getThumbOffset():获取当前滑块的偏移量。

相关属性:

以下是 SeekBar 常用的属性:

  1. android:max:设置 SeekBar 的最大值。
  2. android:progress:设置 SeekBar 的当前进度值。
  3. android:thumb:设置滑块(Thumb)的图像,可以是一个 Drawable 资源。
  4. android:thumbOffset:设置滑块的偏移量。
  5. android:progressDrawable:设置 SeekBar 的进度条 Drawable,可以是一个 Drawable 资源。 

三、例子 

 运行结果:

MainActivity : 

public class MainActivity extends AppCompatActivity {
private Button add,minus;
ProgressBar mProgressBar;
SeekBar mSeekBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);add = findViewById(R.id.add);mProgressBar = findViewById(R.id.bar);minus = findViewById(R.id.minus);mSeekBar = findViewById(R.id.seekbar);add.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int curProgress = mProgressBar.getProgress();int curSeekProgress = mSeekBar.getProgress();mSeekBar.setProgress(curSeekProgress+10);mProgressBar.setProgress(curProgress+10);}});minus.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int curProgress = mProgressBar.getProgress();mProgressBar.setProgress(curProgress-10);int curSeekProgress = mSeekBar.getProgress();mSeekBar.setProgress(curSeekProgress-10);}});mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {Toast.makeText(MainActivity.this, "进度条进度改变!", Toast.LENGTH_SHORT).show();}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {Toast.makeText(MainActivity.this, "进度条被手指触摸!", Toast.LENGTH_SHORT).show();}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {Toast.makeText(MainActivity.this, "手指离开进度条!", Toast.LENGTH_SHORT).show();}});}
}

 activity_main:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><ProgressBarandroid:id="@+id/bar"android:gravity="center"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:max="100"android:min="0"android:progress="18" /><SeekBarandroid:id="@+id/seekbar"android:layout_width="match_parent"android:layout_height="wrap_content"android:max="100"android:min="0"/><Buttonandroid:id="@+id/add"android:layout_width="wrap_content"android:layout_height="50dp"android:text="增加进度"android:layout_gravity="center"/><Buttonandroid:id="@+id/minus"android:layout_width="wrap_content"android:layout_height="50dp"android:text="减少进度"android:layout_gravity="center"/></LinearLayout>

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计数排序

计数排序 排序步骤 1、以最大值和最小值的差值加一为长度创建一个新数组 2、将索引为0对应最小值&#xff0c;索引为1对应最小值1&#xff0c;索引为2对应最小值2&#xff0c;以此类推&#xff0c;将索引对应最小值到最大值之间所有的值 3、遍历一遍&#xff0c;遇到一个数字…

计算机网络 - http协议 与 https协议(2)

前言 本篇介绍了构造http请求的的五种方式&#xff0c;简单的使用postman构造http请求&#xff0c;进一步了解https, 学习https的加密过程&#xff0c;了解对称密钥与非对称密钥对于加密是如何进行的&#xff0c;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流…

云计算相关概念

文章目录 一、云计算的三种部署模式&#xff1a;公有云、私有云、混合云--区别和特性二、华为云&#xff1a;简介、主要业务、特点和优势、不同场景和行业中的应用三、华为云-三剑客&#xff1a;IaaS、PaaS、SaaS 一、云计算的三种部署模式&#xff1a;公有云、私有云、混合云–…

webpack插件安装

webpack插件安装 1、html-webpack-plugin插件2 、css-loader和style-loader插件3、less-load插件 1、html-webpack-plugin插件 1、下载插件 yarn add html-webpack-plugin -D2、webpack.config.js添加配置 *const HtmlWebpackPlugin require(html-webpack-plugin); const p…

SpringBoot+JWT实现单点登录解决方案

一、什么是单点登录? 单点登录是一种统一认证和授权机制&#xff0c;指在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的系统&#xff0c;不需要重新登录验证。 单点登录一般用于互相授信的系统&#xff0c;实现单一位置登录&#xff0c;其他信任的…

机器学习技术(五)——特征工程与模型评估

机器学习技术&#xff08;五&#xff09;——特征工程与模型评估(2️⃣) 文章目录 机器学习技术&#xff08;五&#xff09;——特征工程与模型评估(:two:)二、模型评估1、Accuracy score2、Confusion matrix混淆矩阵1、多值2、二值 3、Hamming loss4、Precision, recall and F…

深度学习笔记之Transformer(八)Transformer模型架构基本介绍

机器学习笔记之Transformer——Transformer模型架构基本介绍 引言回顾&#xff1a;简单理解&#xff1a; Seq2seq \text{Seq2seq} Seq2seq模型架构与自编码器自注意力机制 Transformer \text{Transformer} Transformer架构关于架构的简单认识多头注意力机制包含掩码的多头注意力…

Elasticsearch【全文检索、倒排索引、应用场景、对比Solr、数据结构】(一)-全面详解(学习总结---从入门到深化)

目录 Elasticsearch介绍_全文检索 Elasticsearch介绍_倒排索引 Elasticsearch介绍_Elasticsearch的出现 Elasticsearch介绍_Elasticsearch应用场景 Elasticsearch介绍_Elasticsearch对比Solr Elasticsearch介绍_Elasticsearch数据结构 Elasticsearch介绍_全文检索 Elasti…

libvirt 热迁移流程及参数介绍

01 热迁移基本原理 1.1 热迁移概念 热迁移也叫在线迁移&#xff0c;是指虚拟机在开机状态下&#xff0c;且不影响虚拟机内部业务正常运行的情况下&#xff0c;从一台宿主机迁移到另外一台宿主机上的过程。 1.2 虚拟机数据传输预拷贝和后拷贝 预拷贝(pre-copy)&#xff1a; …

Windows如何恢复已删除的Word文档?

案例&#xff1a;可以恢复已删除的Word文档吗&#xff1f; “大家好&#xff0c;我遇到了一个问题&#xff0c;需要大家的帮助。昨天我编辑了一个Word文档并保存到了桌面上&#xff0c;但当我今天再次打开电脑时&#xff0c;它就不见了&#xff01;昨天工作完成后&#xff…

Sentinel 规则详解

Sentinel 规则 流控规则 flow1、QPS流控2、并发线程数流控3、流控模式4、流控效果 熔断&#xff08;降级&#xff09;规则 degrade1、慢调用比例2、异常比例3、异常数 热点规则 param-flow授权规则 authority1、应用场景2、自定义来源3、授权规则配置 系统规则 前言&#xff1a…

JMeter进行WebSocket压力测试

背景 之前两篇内容介绍了一下 WebSocket 和 SocketIO 的基础内容。之后用 Netty-SocketIO 开发了一个简单的服务端&#xff0c;支持服务端主动向客户端发送消息&#xff0c;同时也支持客户端请求&#xff0c;服务端响应方式。本文主要想了解一下服务端的性能怎么样&#xff0c;…

4.6.tensorRT基础(1)-实际模型上onnx文件的各种操作

目录 前言1. onnx1.1 读取节点1.2 修改节点1.3 替换节点1.4 删除节点1.5 修改input和output1.6 预处理的接入 总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#…

【深度学习】神经网络初学者指南

一、说明 这是一篇对神经网络的泛泛而谈的文章&#xff0c;我的意见是&#xff0c;先知道框架&#xff0c;而后知道每一个细节&#xff0c;这是学习人工智能的基本路线。本文就神经网络而言&#xff0c;谈到一些基础概念&#xff0c;适应于初学者建立概念。 二、神经网络定义 神…

计算机网络————网络层

文章目录 网络层设计思路IP地址IP地址分类IP地址与硬件地址 协议ARP和RARPIP划分子网和构造超网划分子网构造超网&#xff08;无分类编址CIDR&#xff09; ICMP 虚拟专用网VPN和网络地址转换NATVPNNAT 网络层设计思路 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数…

【MQTT】Esp32数据上传采集:最新mqtt插件(支持掉线、真机调试错误等问题)

前言 这是我在Dcloud发布的插件-最完整Mqtt示例代码&#xff08;解决掉线、真机调试错误等问题&#xff09;&#xff0c;经过整改优化和替换Mqtt的js文件使一些市场上出现的问题得以解决&#xff0c;至于跨端出问题&#xff0c;可能原因有很多&#xff0c;例如&#xff0c;合法…

<数据结构>并查集

目录 并查集概念 合并 查找集合的数量 并查集类代码实现 并查集概念 并查集和堆一样&#xff0c;都是通过数组来实现树的节点映射&#xff0c;不过并查集作用是&#xff0c;把一堆数据分为不同的几个小集合 不过并查集是森林的概念&#xff0c;并查集的学习可以帮助我们去更…

IDEA中侧边栏没有git commit模块,如何恢复?

一、修改之前 侧边栏没有git commit模块 二、修改之后 侧边栏恢复了git commit模块 三、下面是恢复教程 1.中文版 打开 文件 -> 设置 -> 版本控制 -> 提交 -> 勾选 【使用非模式提交界面】 -> 点击【确定】 2.英文版 打开 file -> Settings -> Version Co…

同步和异步的区别

同步&#xff0c;可以理解为在执行完一个函数或方法之后&#xff0c;一直等待系统返回值或消息&#xff0c;这时程序是处于阻塞的&#xff0c;只有接收到返回的值或消息后才往下执行其他的命令&#xff1b; 异步&#xff0c;执行完函数或方法后&#xff0c;不必阻塞性地等待返回…

Linux与Windows:操作系统的比较与技巧分享

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…