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 普通圆形ProgressBar 该类型进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中。 一般只要在XML...
  • x1971481259
  • x1971481259
  • 2016年09月19日 16:39
  • 211

Android垂直ProgressBar的实现

1. 定义类继承ProgressBar public class VerticalProgressBar extends ProgressBar {     public VerticalPr...
  • a0407240134
  • a0407240134
  • 2016年07月12日 15:49
  • 355

Android的ProgressBar自定义入门

Android ProgressBar 本文主要围绕android.widget.ProgressBar,对样式自定义的部分细节进行描述。 XML属性 首先,来了解一下ProgressB...
  • Zenip
  • Zenip
  • 2013年02月07日 20:17
  • 8100

ProgressBar属性小结(转载)

ProgressBar属性小结 属性 android:animationResolution:Timeout between frames of animation in milliseconds...
  • xiaochuanding
  • xiaochuanding
  • 2016年11月15日 08:37
  • 967

圆形和水平ProgressBar自定义详解

Android简单自定义圆形和水平ProgressBar
  • afanyusong
  • afanyusong
  • 2016年09月09日 10:08
  • 640

progressBar详解

另一篇博文:关于自定义progressBar ProgressBar滚动体在安卓程序中使用也计较多。 ProgressBar的几个常用属性和方法 Android:max="200"    滚动条...
  • kyi_zhu123
  • kyi_zhu123
  • 2016年10月14日 09:26
  • 75

Android ProgressBar 详解 改变 ProgressBar 颜色

今天来说说 ProgressBar   这个东西, 之前一种是用的 项目里面 别人写好的直接用, 还没怎么细看这两个东西 ProgressBar 很简单就一进度条 默认情况下, 他是圆形...
  • qq_21445563
  • qq_21445563
  • 2017年05月04日 11:26
  • 741

C#控件之进度条—progressBar及其相关知识

铺垫知识: 一多线程编程 ThreadStartParameterizedThreadStart 在实例化Thread的实例,需要提供一个委托,在实例化这个委托时所用到的参数是线程将来启动时要运行的方...
  • yixiantian7
  • yixiantian7
  • 2013年08月27日 19:45
  • 7543

SmoothProgressBar 水平进度条

GithubDemo地址:https://github.com/castorflex/SmoothProgressBar 效果图如下:                  gradle上添...
  • u012354475
  • u012354475
  • 2016年05月20日 11:18
  • 1212

Android 原生progressBar使用

作为比较常见的控件,经常需要针对项目对其进行一定程度的定制和修改,当然一些较大程度的定制和修改都是基于自定义View进行绘制的,但是一些改动较小的地方便可以使用Android原生progressbar...
  • ccw0054
  • ccw0054
  • 2017年03月30日 16:16
  • 790
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ProgressBar详解
举报原因:
原因补充:

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