进度条(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)的功能与用法相关推荐

  1. 安卓开发之WebView,进度条ProgressBar以及MediaPlayer和SonundPool的使用

    原 安卓开发之WebView,进度条ProgressBar以及MediaPlayer和SonundPool的使用 2018年06月06日 15:04:21 阅读数:106 内容比较简单,仅用作笔记,所 ...

  2. Xamarin XAML语言教程构建进度条ProgressBar

    Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度 ...

  3. 【鸿蒙 HarmonyOS】UI 组件 ( 进度条 ProgressBar 和 RoundProgressBar 组件 )

    文章目录 一.布局中设置 ProgressBar.RoundProgressBar 进度条 二.代码中设置 ProgressBar.RoundProgressBar 进度条 三.完整代码示例 四.Gi ...

  4. Windows Phone 7开发,进度条ProgressBar使用详解

    进度条在应用中的作用非常大,可以告诉用户当前操作执行的进度,以免用户在等待中失去耐心,进而关闭应 用.Windows Phone 7的进度条有两种样式,一种是从左往右循环滚动的小点点,这种进度条并不能 ...

  5. Unity实现扇形Slider进度条加载功能

    Unity实现扇形Slider进度条加载功能 前言 在实际的开发项目中,再跳转场景的时候可以加一个进度条显示的功能,这样在跳转场景的时候就不会显得很突兀.在进度条的实现方式中,有很多的方式,例如Uni ...

  6. Android 各种自定义进度条Progressbar

    Android 自定义进度条 Progressbar 控件集合 关于我,欢迎关注 博客:ccapton(http://blog.csdn.net/ccapton) 微信:Ccapton Github ...

  7. WPF的进度条progressbar,运行时间elapse time和等待spinner的实现

    今天用.NET 4.5中的TPL的特性做了个小例子,实现了WPF的进度条progressbar,运行时间elapse time和等待spinner. 先上图吧. 这个例子包含4个实现,分别是同步版本( ...

  8. Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能

    Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能 前言 我在之前的博客里介绍过关于VideoPlayer的简单使用流程,之前一直想研究下videoPlayer中的使用进度条控制视频 ...

  9. progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条

    progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条 附上我在公司做下载播放项目 主要使用方法 progressBlock = (ProgressBlock) f ...

  10. C# .Net WinForm 进度条ProgressBar 用法 实例

    基本介绍 进度条控件,用于显示某操作动作进度或跑马灯效果. 常设置属性 Value:获取或设置进度栏的当前位置: Style:进度栏指示进度所使用的展示方式: Maximum:控件使用范围的上限: M ...

最新文章

  1. 干货丨机器学习必知的15大框架
  2. Django+Linux+Uwsgi+Nginx项目部署文档
  3. 关于oracle date类型值0000-0-0的分析
  4. 可汗学院 统计学(12到34集)
  5. 你必须『收藏』的Github技巧
  6. multisim高频小信号放大器_什么是放大器及其用处_光纤传感器_传感器
  7. Python使用pyopencl在GPU上并行处理批量判断素数
  8. 修正的判定/条件覆盖
  9. 内存颗粒位宽和容量_内存颗粒编码原则,方便大家识别颗粒是否可用与扩容
  10. VirtualBox安装增强工具时:Unable to install guest additions: unknown filesystem type 'iso9660'
  11. 2021-10-18记录 MediaTek MT7620A 平台对应的类型
  12. 详谈GoLang的panic和error
  13. 13 款开源全文检索引擎
  14. kotlin的必修之路
  15. ionic3正式发布(ionic2升级到ionic3)
  16. 什么时候用重定向,什么时候用请求转发。
  17. 让opencv输出人脸检测的得分(置信率),找出一些和脸比较像但是不是脸的负样本
  18. 安卓下 mount: ‘/system‘ not in /proc/mounts
  19. 零基础小白怎么自学软件测试?
  20. 阿里云国际站代理商:美国和香港服务器怎么配置采购?

热门文章

  1. 浅谈java的序列化/反序列使用场景
  2. ADP124ARHZ-1.8-R7 5.5 V输入、500 mA、低静态电流、CMOS线性调节器,31种固定输出电压选项
  3. 【Andrew Ng深度学习作业】C1W4——Building your Deep Neural Network - Step by Step
  4. 软件测试笔记-软件测试的背景
  5. 手把手教你实现物理碰撞的网络同步
  6. python 使用google接口实现文本自动翻译功能
  7. 阿萨德发噶是的阿萨德阿萨德阿萨德阿萨德
  8. 快速部署 k8s 集群
  9. Golang DES加解密
  10. 海康威视无线摄像头安装调试