关闭

ProgressBar详解

标签: androidProgressBar
135人阅读 评论(0) 收藏 举报
分类:

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

设置它很简单,如下格式

<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






0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9000次
    • 积分:321
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    最新评论