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

热门文章

  1. 关于IP SLA及与EEM联动的探讨(转)
  2. 01spring初识
  3. html中元素的定位详解
  4. 湖北武汉机械员证书机械设备进场的安全要求建筑七大员培训
  5. 实例讲解:拼团活动如何设计?
  6. 时间反演算符以及对称性
  7. Analys 版本历史
  8. 直播 | 浙江大学硕士生任意:非自回归语音合成
  9. 安规电容: X 电容, Y 电容的作用
  10. 什么是VML(转载)