文章目录

  • 常用属性
  • 基本框架
  • 按钮控制
  • 条形进度条

常用属性

android:max 进度条的最大值
android:progress 进度条已完成进度值
android:indeterminate 如果设置为true,则进度条不精确显示进度
style="?android:attr/progressBarStyleHorizontal" 水平进度条

基本框架

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

运行之后就可以得到一个“加载中”的圆圈进度条:

按钮控制

添加一个按钮与其点击事件,给进度条取个id,方便在java代码中获取。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ProgressBarandroid:id="@+id/pb"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Buttonandroid:text="显示/隐藏进度条"android:onClick="myClick"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

在java代码中获取进度条的id,并编写点击事件:

package com.example.myprogressbar;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;public class MainActivity extends AppCompatActivity {private ProgressBar mypb;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mypb=findViewById(R.id.pb);}public void myClick(View view) {if(mypb.getVisibility()==View.GONE){mypb.setVisibility(View.VISIBLE);}else{mypb.setVisibility(View.GONE);}}
}

代码的意思是,如果进度条不可见,则令其可见;否则令其不可见。可在虚拟机上看到效果如下:

通过点击按钮,就可以控制进度条是否显示。

这样的设计在加载网页的时候也是类似的,不过判断条件就变成了数据是否加载完成。

条形进度条

想要一个条形的进度条,我们可以用安卓预设的style。

<ProgressBarandroid:id="@+id/pb2"style="?android:attr/progressBarStyleHorizontal"android:max="100"android:layout_width="300dp"android:layout_height="wrap_content"/>

设置该进度条的最大值为100,其进度可以在android:progress中查看。在这里,我们用按钮点击来模拟加载数据,控制进度条的值。

<Buttonandroid:text="点击为进度条助力"android:onClick="load"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
public void load(View view) {int progress=mypb2.getProgress();progress+=10;mypb2.setProgress(progress);}

每次点击增加110\frac{1}{10}101​的进度,效果如下:

如果将android:indeterminate设置为true,则不显示进度,进度条就变成加载动画的效果。

Android开发之ProgressBar控件(实现加载动画与条形进度条)相关推荐

  1. android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...

    在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制 ...

  2. android 视频开发sd卡,Android开发之SD卡文件操作分析

    本文实例讲述了Android开发之SD卡文件操作.分享给大家供大家参考,具体如下: 前面的文章中写过直接操作手机自带存储器的程序,这次就接着上次文章协议下对sd卡的文件操作.与自带存储不同的是使用sd ...

  3. Flutter开发之ListView使用第三方flutter_refresh加载更多(37)

    在Flutter开发之ListView使用第三方pull_to_refresh加载更多(36) 中我们实现了下拉刷新.上拉分页加载的功能.今天介绍另一个ListView使用第三方flutter_ref ...

  4. 如何实现SAP UI5 Web Component React控件的加载效果

    假设我使用SAP UI5 Web Component的React控件, 比如柱状图和折线图: 导入useState函数,默认加载状态为false: 每次点击屏幕后,首先将Loading状态使用切换函数 ...

  5. MapGis二次开发——基础地图目录树控件的加载

    MapGis二次开发--基础地图目录树控件的加载 第一步:添加MapGis引用 MapGis动态库位置是在你安装位置下的\Program\plugin下,例如我的安装位置就是:D:\MapGIS 10 ...

  6. C#中的Chart控件——当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照

    C#中的Chart控件--当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照 本文源码下载地址:https://download.csdn.net/download/qq_427579 ...

  7. android圆形点击效果,Android 三种方式实现自定义圆形页面加载中效果的进度条

    [实例简介] Android 三种方式实现自定义圆形页面加载中效果的进度条 [实例截图] [核心代码] ad376a86-a9aa-49bc-8cea-321bcff2c0c3 └── AnimRou ...

  8. iOS-仿支付宝加载web网页添加进度条

    代码地址如下: http://www.demodashi.com/demo/11727.html 目前市场上APP常会嵌入不少的h5页面,参照支付宝显示web页面的方式, 做了一个导航栏下的加载进度条 ...

  9. 教程二:go语言windows gui界面开发之walk 控件学习第一节

    常用控件集合 本章介绍并学习路线中弹窗之前(包含弹窗)的所有控件 一.认识控件 本章将要学习的控件列表如下图所示,逐一讲解使用方法: 二.预备知识 2.1 控件结构体中通用字段 AssignTo :绑 ...

  10. Excel催化剂开源第13波-VSTO开发之DataGridView控件几个小坑

    Excel催化剂内部大量使用了DataGridView,这其中有一些小坑,花了力气才解决的,在此给广大开发者作简单分享. 为何要使用DataGridView而不是其他控件如ListBox.ListVi ...

最新文章

  1. LotusScript类的继承
  2. 什么是数据库范式(NF)?从一范式到五范式分别是什么?
  3. pandas读取多个excel文件并拼接(append)起来形成最终的dataframe、与标签文件连接(join)形成最终学习数据集
  4. : Android之linux基础教学之三 分页机制
  5. php error log 函数,php日志函数error_log如何使用 php日志函数error_log用法介绍
  6. linux内核数据结构之链表
  7. POJ 2485 Highways (prim最小生成树)
  8. nginx ngx_http_core_module(http server location)
  9. javaWEB总结(29):理解多个Filter代码的执行顺序
  10. DP动态规划【专辑@AbandonZHANG】
  11. SilverLight自定义集合控件中的集合项数据绑定问题
  12. 百度地图多点路线规划_自驾游路线规划神器:高德地图路书功能
  13. 大一大学计算机应用基础课后简答题,2017大一计算机应用基础试题及答案
  14. 【CV】细粒度图像分割 (FGIS)
  15. Orcle 12c Sharding---Sharded和Duplicated表介绍
  16. PCL官网学习OpenNI Grabber 调用奥比中光Astra s 遇到问题openni2_grabber.cpp @ 325 : No devices connected.
  17. Auto.js 找图 找色 剪切图片 坐标区域计算方法
  18. Linux 命令————打包解压之tar
  19. Objective-C 之父 Brad Cox 逝世,创建过乐队、推动苹果软件生态
  20. 操作系统总结(二)系统调用及系统结构

热门文章

  1. 单片机c语言中void key(void),单片机C语言编程
  2. oracle的sql字符串转义,sql – 在Oracle数据库中搜索带转义的字符串
  3. 修改eclipse或者myeclipse的背景颜色(全部的背景颜色)
  4. leetcode 85. Maximal Rectangle
  5. SSH复用代码最终版
  6. Zookeeper+Curator 分布式锁
  7. UVA 10369 - Arctic NetWork (求最小生成树)
  8. 获取OlapConnection连接
  9. python alembic which comes from SQLalchemy
  10. Hibernate读书笔记-----事件机制