进度条(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 ...
最新文章
- sorry for yesterday
- Docker学习笔记之保存和共享镜像
- wireshark抓包数据:理解与分析
- maven导出项目依赖的jar包
- “SqlNullValueException: Data is Null. This method or property cannot be called on Null values.”的解决方案
- 一个关于文件结构体数组的条件排序函数
- 小红书再度出拳整治医美 首批处置违规笔记27.9万篇
- Python Tricks(十二)—— 有理数的加法
- Qt之QSS(白色靓丽)
- 传说中的“猴年马月”就要来了,感觉很多愿望都要实现啦!
- ExpRe[10] Ubuntu[2] 准备神秘软件、备份恢复软件
- 计算机房应配置灭火器,下列哪种灭火器配置是正确的?
- 源码看JAVA【五】Byte
- 高通全新WiFi方案支持Ayla物联网平台连接
- AC敏捷控制器及准入控制技术对比
- 2018CVPR_Future Frame Prediction for Anomaly Detection – A New Baseline
- linux添加删除虚拟ip,Linux增加/删除虚拟ip
- 基础5·BMI计算(if分支结构)
- 重磅!百度怒告前高管王劲,真实原因竟然是因为....
- 计算机为什么自己放音乐,电脑开机后为什么自动放音乐?在哪里头可以解决?