进度条(ProgressBar)的功能与用法
进度条(ProgressBar)的功能与用法
进度条是UI界面中一种实用的UI组件,用于显示一个耗时操作显示出来的百分比,进度条可以动态的显示进度,避免是用户觉得系统长时间未反应,提高用户的体验。
下面程序简单示范了进度条的用法,界面布局文件如下:
在layout下的activity_main中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:orientation="vertical"android:layout_height="match_parent"tools:context=".Main5Activity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"/>
<!-- 定义大环形进度条--><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content"style="@android:style/Widget.ProgressBar.Large"/>
<!-- 定义中等环形进度条--><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content"/>
<!-- 定义小环形进度条--><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content"style="@android:style/Widget.ProgressBar.Small"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="任务完成进度条"android:textSize="24dp"/>
<!-- 定义水平进度条--><ProgressBarandroid:id="@+id/bar"android:layout_width="match_parent"android:layout_height="wrap_content"android:max="100"style="@android:style/Widget.ProgressBar.Horizontal"/>
<!-- 定义水平进度条,改变轨道外观--><ProgressBarandroid:id="@+id/bar2"android:layout_width="match_parent"android:layout_height="wrap_content"android:max="100"android:progressDrawable="@drawable/c4"style="@android:style/Widget.ProgressBar.Horizontal"/>
</LinearLayout>
在drawable下的文件下的my_bar中:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><!-- 定义轨道的背景--><item android:id="@android:id/background"android:drawable="@drawable/c4"/>
<!-- 定义已完成部分的样式--><item android:id="@android:id/progress"android:drawable="@drawable/c2"/>
</layer-list>
在MainActivity.java中:
package com.example.test03;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;import java.lang.ref.WeakReference;public class Main5Activity extends AppCompatActivity {// 该模拟填充长度为100的数组private int[] data=new int[100];private int hasdata=0;
// 记录ProgressBar的完成进度int status=0;private ProgressBar bar;private ProgressBar bar2;static class MyHandler extends Handler{private WeakReference<Main5Activity> activity;MyHandler(WeakReference<Main5Activity> activity){this.activity=activity;}@Overridepublic void handleMessage(@NonNull Message msg) {// 表明该消息是该程序发送的if (msg.what==0x111){activity.get().bar.setProgress(activity.get().status);activity.get().bar2.setProgress(activity.get().status);}}}
// 负责更新进度MyHandler myHandler=new MyHandler(new WeakReference<>(this));@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main5);bar=findViewById(R.id.bar);bar2=findViewById(R.id.bar2);
// 启动线程在执行进度new Thread(){@Overridepublic void run() {while (status<100){// 获取耗时操作的完成百分比status=doWork();
// 发送消息myHandler.sendEmptyMessage(0x111);}}}.start();}
// 模拟耗时操作public int doWork() {// 为数组元素赋值data[hasdata++] = (int) (Math.random() * 100);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}return hasdata;}
}
**以上就介绍到这里,上面简单实现了一些进度条的方法,点赞加关注哦。**
进度条(ProgressBar)的功能与用法相关推荐
- 安卓开发之WebView,进度条ProgressBar以及MediaPlayer和SonundPool的使用
原 安卓开发之WebView,进度条ProgressBar以及MediaPlayer和SonundPool的使用 2018年06月06日 15:04:21 阅读数:106 内容比较简单,仅用作笔记,所 ...
- Xamarin XAML语言教程构建进度条ProgressBar
Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度 ...
- 【鸿蒙 HarmonyOS】UI 组件 ( 进度条 ProgressBar 和 RoundProgressBar 组件 )
文章目录 一.布局中设置 ProgressBar.RoundProgressBar 进度条 二.代码中设置 ProgressBar.RoundProgressBar 进度条 三.完整代码示例 四.Gi ...
- Windows Phone 7开发,进度条ProgressBar使用详解
进度条在应用中的作用非常大,可以告诉用户当前操作执行的进度,以免用户在等待中失去耐心,进而关闭应 用.Windows Phone 7的进度条有两种样式,一种是从左往右循环滚动的小点点,这种进度条并不能 ...
- Unity实现扇形Slider进度条加载功能
Unity实现扇形Slider进度条加载功能 前言 在实际的开发项目中,再跳转场景的时候可以加一个进度条显示的功能,这样在跳转场景的时候就不会显得很突兀.在进度条的实现方式中,有很多的方式,例如Uni ...
- Android 各种自定义进度条Progressbar
Android 自定义进度条 Progressbar 控件集合 关于我,欢迎关注 博客:ccapton(http://blog.csdn.net/ccapton) 微信:Ccapton Github ...
- WPF的进度条progressbar,运行时间elapse time和等待spinner的实现
今天用.NET 4.5中的TPL的特性做了个小例子,实现了WPF的进度条progressbar,运行时间elapse time和等待spinner. 先上图吧. 这个例子包含4个实现,分别是同步版本( ...
- Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能
Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能 前言 我在之前的博客里介绍过关于VideoPlayer的简单使用流程,之前一直想研究下videoPlayer中的使用进度条控制视频 ...
- progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条
progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条 附上我在公司做下载播放项目 主要使用方法 progressBlock = (ProgressBlock) f ...
- C# .Net WinForm 进度条ProgressBar 用法 实例
基本介绍 进度条控件,用于显示某操作动作进度或跑马灯效果. 常设置属性 Value:获取或设置进度栏的当前位置: Style:进度栏指示进度所使用的展示方式: Maximum:控件使用范围的上限: M ...
最新文章
- 干货丨机器学习必知的15大框架
- Django+Linux+Uwsgi+Nginx项目部署文档
- 关于oracle date类型值0000-0-0的分析
- 可汗学院 统计学(12到34集)
- 你必须『收藏』的Github技巧
- multisim高频小信号放大器_什么是放大器及其用处_光纤传感器_传感器
- Python使用pyopencl在GPU上并行处理批量判断素数
- 修正的判定/条件覆盖
- 内存颗粒位宽和容量_内存颗粒编码原则,方便大家识别颗粒是否可用与扩容
- VirtualBox安装增强工具时:Unable to install guest additions: unknown filesystem type 'iso9660'
- 2021-10-18记录 MediaTek MT7620A 平台对应的类型
- 详谈GoLang的panic和error
- 13 款开源全文检索引擎
- kotlin的必修之路
- ionic3正式发布(ionic2升级到ionic3)
- 什么时候用重定向,什么时候用请求转发。
- 让opencv输出人脸检测的得分(置信率),找出一些和脸比较像但是不是脸的负样本
- 安卓下 mount: ‘/system‘ not in /proc/mounts
- 零基础小白怎么自学软件测试?
- 阿里云国际站代理商:美国和香港服务器怎么配置采购?