ProgressBar详解

原创 2016年08月31日 00:24:09

它是一个进度条控件或者是加载控件,有两种形式,一种是转圈圈的加载控件,还有一种是进度条,显示当前进度的多少。如果是做应用,那么这个控件是少不了的,应为在请求网络数据的时候,就需要使用到它,在加载数据前,显示加载框,在数据获取到或者失败后,取消或者是隐藏该控件。

设置它很简单,如下格式

<ProgressBar  
     android:id="@+id/progressBar1"  
     android:layout_width="80dp"  
     android:layout_height="80dp" />  

这就显示了加载框,但在我手机上显示的加载条是红色的,我并不想要这个颜色,那么如何修改这个颜色呢?

android:indeterminateTint="#CCCCCC"        ,该属性设置圆圈的颜色
android:indeterminateTintMode="src_atop"    ,该属性设置进度条的旋转模式,src_atop就是正常模式,其他模式,大家可以试试。
颜色修改完了,那么加载信息就显示出来了,在程序中就可以直接的布局中屏幕中间,在不用的时候隐藏起来,需要的时候显示出来,但是这样做的效果不太好,因为需要每个布局文件中都需要设置该控件。可以在Dialog中添加该控件,在需要的时候,显示弹框,不需要的时候,取消弹框,这样做效果更好。

有时候,我们需要进度条的形式,那么如果变为进度条呢?

需要去改变形式,下面这几个属性是设置进度条的。

style="?android:attr/progressBarStyleHorizontal"   
设置风格为长形 
android:max="100"   
最大进度值为100
android:progress="50"  
初始化的进度值
android:secondaryProgress="70" 
初始化的底层第二个进度值 
android:layout_gravity="center_vertical
垂直居中
属性都有解释,设置进去后,显示出来的就是进度条了,那么进度条是静态的,如何让它动起来呢,下面这个例子就让其动起来。

通过在代码中设置setProgress(num);让进度条不停的变化

mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
        mProgressBar.setProgress(0);
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                mProgressBar.setProgress(mProgressBar.getProgress() + 5);
                if (mProgressBar.getProgress() >= 100){
                    if (timer != null){
                        timer.cancel();
                    }
                }
            }
        };
        timer = new Timer();
        timer.schedule(timerTask,1000,500);

这里通过定时器,来让进度条不停的增长,当进度条d大于等于100时,停止定时器。


有时候,我们需要将加载框颜色渐变,让其显得更好看,那用如何实现呢?

在drawable文件夹下创建progressbar.xml

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="360" >
    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="false" >
        <gradient
            android:centerColor="#FFFFFF"
            android:centerY="0.50"
            android:endColor="#cccccc"
            android:startColor="#000000"
            android:type="sweep"
            android:useLevel="false" />
    </shape>
</rotate>
然后设置该属性android:indeterminateDrawable,该属性设置一个drawable.

xml文件配置内容其中有一个旋转动画,该动画是从0度到360旋转,然后是样式,样式是圆环,颜色的渐变,从#000000到#cccccc的颜色的改变。

总结:

该控件使用起来简单,涉及到的属性有

<pre name="code" class="html"><pre name="code" class="html">android:indeterminateTint
android:indeterminateTintMode
style="?android:attr/progressBarStyleHorizontal"   
android:max="100"   
android:progress="50"  
android:secondaryProgress="70" 


android:indeterminateDrawable






版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android进度条ProgressBar使用详解

先介绍一下ProgressBar几种比较常用的属性 布局中设置: android:max="100" ——最大显示进度 android:progress="50"——第一显示进度 android:...

Android ProgressBar详解以及自定义

http://blog.csdn.net/wangjinyu501/article/details/25963993 版权声明:本文为博主原创文章,未经博主允许不得转载。 ...

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

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

Android ProgressBar详解以及自定义

转载网址: 这一次主要说一下Android下的进度条,为什么是它呢,因为近期被其各种美轮美奂的设计所倾倒,计划逐渐去实现。另外一个因素也是它也是为数不多的直接继承于View类的控件,从中 是不是很漂...
  • shuaiby
  • shuaiby
  • 2014年11月04日 14:25
  • 9958

UI组件详解3---- ProgressBar、SeekBar、ImageView与TabHost

一、ProgressBar:     "1.0"encoding="utf-8"?> "http://schemas.android.com/apk/res/android"     andr...

Android UI详解之SeekBar、ProgressBar和RatingBar

Android UI详解之SeekBar、ProgressBar和RatingBar      ***ProgressBar本身是一个进度条,他派生了两个子类SeekBar和RatingBar  ...
  • UStory
  • UStory
  • 2015年01月09日 15:59
  • 1848

Android UI(ProgressBar)详解

目录:     1.应用场景     2.常用属性     3.默认的进度条分类与设置style方法     4.简单使用(进度的更新与进度值获取)      5.ProgressDialog中的进度...

自定义水平progressbar

  • 2017年10月25日 12:45
  • 10.99MB
  • 下载

ProgressBar进度条

  • 2015年08月12日 13:46
  • 2.61MB
  • 下载

Android之ProgressBar详解---自定义ProgressBar

前言:今天有时间复习一下进度条,顺便总结一下 一:为什么使用ProgressBar 进度条的主要作用简言之就是避免应用在执行某个耗时操作时,让用户感觉程序失去了响应,从而更好的提高用户界面的友好性。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ProgressBar详解
举报原因:
原因补充:

(最多只允许输入30个字)