Android开发基础使用ProgressBar加载进度条示例

目录
  • 前言
  • 使用方法
  • 总结

前言

之前我们用过WebView类,打开网页时就会出现加载网页的情况,为了让我们直观的感受到网页加载到什么程度而不是白白干等着空白页,于是加载进度条就是一个很好的展示方式,而通常情况下,当我们的数据未加载完成时就会去使用进度条,而ProgressBar就是用于界面上显示进度条的,下面让我们看看这个控件的使用方法。

使用方法

首先我们将ProgressBar控件加到布局中:

<?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:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".WebViewTest">
    ...
    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
</LinearLayout>

然后运行程序就会发现我们的这个页面上会加载这个进度条的圈:

但我们会发现,这个圈一直在加载,所以就需要我们对这个控件进行控制,正常情况下应该在数据未加载完成前显示,加载完成后隐藏控件的,直接用setVisibility()方法来实现即可,我们这边简化一下,通过点击页面按钮来显示和隐藏:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <WebView
        android:id="@+id/vWebView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
    <Button
        android:id="@+id/vClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button"
        android:layout_gravity="center"/>
</FrameLayout>
binding.vClick.setOnClickListener {
    if (binding.progressBar.visibility == View.VISIBLE) {
        binding.progressBar.visibility = View.GONE
    } else {
        binding.progressBar.visibility = View.VISIBLE
    }
}

效果如下:

但是正常来说,web页面我们一般不使用圈的方式,而是条形,其实很简单,只要改ProgressBar控件在XML布局中的一个属性:

<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyleHorizontal"
    android:max="100"
    />

将它的style改为水平进度条,进度条最大长度设置为100,然后在Activity中代码控制这个进度长度即可:

binding.vClick.setOnClickListener {
//            if (binding.progressBar.visibility == View.VISIBLE) {
//                binding.progressBar.visibility = View.GONE
//            } else {
//                binding.progressBar.visibility = View.VISIBLE
//            }
            if (binding.progressBar.progress == 0) {
                binding.progressBar.visibility = View.VISIBLE
            }
            binding.progressBar.progress = binding.progressBar.progress + 10
            if (binding.progressBar.progress == 100) {
                binding.progressBar.progress = 0
                binding.progressBar.visibility = View.GONE
            }
        }

效果如下:

总结

本篇主要是介绍了进度条ProgressBar控件的基本使用方法,这个控件的应用场景非常多,而且现在也有很多封装好更漂亮的控件,当我们需要获取数据去加载时就适合去展示一段加载圈形式的进度条,再配合Dialog的效果,就能让用户感觉到数据的加载过程,这应该也是数据可视化的一种应用吧!

以上就是Android开发基础使用ProgressBar加载进度条示例的详细内容,更多关于Android ProgressBar加载进度条的资料请关注我们其它相关文章!

(0)

相关推荐

  • Android自定义View实现进度条动画

    本文实例为大家分享了Android自定义View实现进度条动画的具体代码,供大家参考,具体内容如下 控件效果 原理: 控制代码/ /更新进度值 val mHandler = object : Handler() {         override fun handleMessage(msg: Message?) {             progressView.setCurrentProgress(progress1.toFloat())         }     } //开启动画,更新

  • 五分了解Android Progress Bar进度条加载

    目录 1.前言 2.ProgressBar 3.SeekBar 4.结尾 1.前言 最近在开发中,同事对于android.widget下的控件一知半解,又恰好那天用到了Seekbar,想了想,那就从Seekbar's father ProgressBar 来说说android.widget下的常用控件和常用用法吧.后面也会根据这些控件来进行仿写.扩展,做一些高度自定义的View啦.如果写的不好,或者有错误之处,恳请在评论.私信.邮箱指出,万分感谢 2.ProgressBar A user int

  • Android实现简单实用的垂直进度条

    本文实例为大家分享了Android实现简单垂直进度条的具体代码,供大家参考,具体内容如下 代码注释特别清晰,就不多解释了 支持属性: progress_radius     进度条圆角大小 progress_border_enable  进度条是否有边框 progress_gradient_enable 进度条颜色是否渐变 progress_start_color     从上到下进度条开始的渐变色 progress_end_color    从上到下进度条结束的渐变色 progress_sol

  • Android自定义对话框的简单实现

    本文实例为大家分享了Android自定义对话框的具体实现代码,供大家参考,具体内容如下 1.定义对话框的布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent&quo

  • android实现简单进度条ProgressBar效果

    本文实例为大家分享了android实现简单进度条ProgressBar的具体代码,供大家参考,具体内容如下 记录一下今天学习的进度条ProgressBar 1.在布局文件中添加ProgressBar <ProgressBar         android:id="@+id/progressbar"         android:layout_width="match_parent"         android:layout_height="w

  • Android入门之利用Spinner实现弹出选择对话框

    目录 介绍 项目结构 前端代码 activity_main.xml item_spin_guns.xml 后端代码 GunBean.java GenericAdapter.java MainActivity.java 介绍 Spinner是一种点一下后供用户可以上下选择用的组件. 我们直接来看一个例子说明这个组件是做什么用的. 我们放大点看 我们这次的课程目标就是实现这样的一种点一下然后弹出选择框的样式. 项目结构 随着前几章对Adapter知识的牢固掌握,我们可以看到,这个例子依旧使用的是Ad

  • Android对话框使用方法详解

    对话框(Dialog)是Android系统在Activity或者其他组件运行过程中提供的一种提示机制.它可以帮助应用完成一些必要的提示功能,同时提供一些与用户交互的功能. 对话框分为很多种,下面将一一介绍. 1.提示对话框 Android系统提供的对话框父类为Dialog, 里面并没有实现对话框的具体类型,比如单选.多选.列表等对话框,仅提供一个框架和规范.系统为开发者提供了一个 多功能的对话框类AlertDialog, 里面封装了各种对话框的样式,开发者只须提供相应的显示数据和按键的响应监听就

  • Android自定义View实现圆形加载进度条

    本文实例为大家分享了Android自定义View实现圆形加载进度条的具体代码,供大家参考,具体内容如下 效果图 话不多说,咱们直接看代码 首先第一种: 1.创建自定义View类 public class MyRelative extends View {        public MyRelative(Context context) {         this(context, null); //手动改成this...     }       public MyRelative(Conte

  • Android自定义控件之水平圆点加载进度条

    本文实例为大家分享了Android实现水平圆点加载进度条的具体代码,供大家参考,具体内容如下 先来看看要实现的效果 实现思路非常简单:当前变化的圆点先从最小半径变大到最大最大半径再变回最小半径的圆,然后再切换到下个圆点,同时颜色会先变浅在变会原来的颜色(可以理解为透明度变化),而且当前圆点的上上一个圆点颜色会不断变浅.大概就这样(可能我实现的效果和图片的有些出入) 先看下实现效果: 直接上代码: package com.kincai.testcustomview_pointprogress; i

  • Android自定义View基础开发之图片加载进度条

    学会了Paint,Canvas的基本用法之后,我们就可以动手开始实践了,先写个简单的图片加载进度条看看. 按照惯例,先看效果图,再决定要不要往下看: 既然看到这里了,应该是想了解这个图片加载进度条了,我们先看具体用法,再看自定义View的实现: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.co

  • Android Webview添加网页加载进度条实例详解

    推荐阅读:Android WebView线性进度条实例详解 最近在android项目中使用webview嵌套了一个抽奖活动网页,活动上线,运行良好(改了N次需求和突发bug),还好这种模式的活动,只需要修改网页,不需要重新打包发布市场,这也是这种模式开发的优势之一.后来据产品哥反馈说加载网页无进度提示,好吧,这个当时真没考虑这么多,这个要加加..想当然以为轻松搞定之....其实还是比轻松要复杂点... 1.首先自定义一个WebView控件 /** * 带进度条的Webivew * @author

  • Android开发中Listview动态加载数据的方法示例

    本文实例讲述了Android开发中Listview动态加载数据的方法.分享给大家供大家参考,具体如下: 最近在研究网络数据加载的问题,比如我有几百,甚至上千条数据,这些数据如果一次性全部加载到arraylist,然后再加载到Listview中.我们必然会去单独开线程来做,这样造成的结果就是会出现等待时间很长,用户体验非常不好.我的想法是动态加载数据,第一次加载十条,然后往下面滑动的时候再追加十条,再往下面滑动的时候再去追加,这样大大减少了用户等待的时间,同时给处理数据留下了时间.网上看到了这样一

  • Android开发实现自定义新闻加载页面功能实例

    本文实例讲述了Android开发实现自定义新闻加载页面功能.分享给大家供大家参考,具体如下: 一.概述: 1.效果演示: 2.说明:在新闻页面刚加载的时候,一般会出现五种状态 未知状态(STATE_UNKNOW).空状态(STATE_EMPTY).加载中(STATE_LOADING).错误(STATE_ERROT).成功(STATE_SUCCESS) 因为每个Detail页面都会出现,所以我们可以把他们封装成一个LoadPage的自定义view,可以复用 二.实现: 1.首先的定义三个布局,为什

  • Android仿微信公众号文章页面加载进度条

    前言: 微信公众号文章详情页面加载的时候,WebView会在头部显示一个进度条,这样做的好处就是用户可以一边加载网页内容的同时也可浏览网页内容,不需要等完全加载完之后才全部显示出来.如何实现呢? 其实很简单,自定义一个WebView就可以实现了. 详细实现步骤如下 : 1.自定义一个ProgressWebView 继续 Webview @SuppressWarnings("deprecation") public class ProgressWebView extends WebVie

  • Android 开发使用PopupWindow实现加载等待界面功能示例

    本文实例讲述了Android 开发使用PopupWindow实现加载等待界面功能.分享给大家供大家参考,具体如下: 实现加载等待界面我用了两种方式,一种是用PopupWindow实现,另一种便是用Activity实现.用Activity实现方法请见我的另一篇博客: Android 使用Activity实现加载等待界面 首先看效果: 用PopupWindow实现此功能还是比较简单的,首先我们写一个布局,只有一个登录按钮,用于触发等待界面: <?xml version="1.0" e

  • Android实现简单的加载进度条

    本文实例为大家分享了Android实现简单的加载进度条的具体代码,供大家参考,具体内容如下 1.效果图 2.自定义progressBar package com.example.myapplication7; import android.animation.ValueAnimator; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; im

  • Android开发之底图局部加载移动的方法示例

    本文实例讲述了Android开发之底图局部加载移动的方法.分享给大家供大家参考,具体如下: public class MapMgr { public static MapMgr mapMgr = null; private int map_num = 28; private int b_x = 0; private int b_y = 0; private int width = 0; private int height = 0; private Bitmap bmpView = null;

随机推荐