ProgressBar详解

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

设置它很简单,如下格式

  

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

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



    
        
    
然后设置该属性 android : indeterminateDrawable,该属性设置一个drawable.

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

总结:

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

android:indeterminateTint
android:indeterminateTintMode
style="?android:attr/progressBarStyleHorizontal"   
android:max="100"   
android:progress="50"  
android:secondaryProgress="70" 
 
  
 
  

android:indeterminateDrawable






你可能感兴趣的:(android,ProgressBar,android基础之旅)