android學習ProgressBar的簡單使用


  android 提供的ProgressBar控件分為兩種,一種是不帶進度的進度條,一種是帶進度的進度條,如果可以計算任務的完成量那么就用帶進度條的,如果無法計算任務量,那么就使用不帶進度的進度條。ProgressBar如果說只使用系統提供的,那就很簡單,就只有那些屬性方法,但是感覺比較難得就是ProgressBar的樣式,一般做應用都不會直接使用系統提供的,而是在它的額基礎上做進一步的美化。

android還提供了在標題欄上顯示progressbar

requestWindowFeature(Window.FEATURE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

ProgressBar的關鍵屬性

        android:max          最大值
        android:proress        第一進度值
        android:secondprogress      第二進度值
        android:interminate         是否精確顯示

最大值:就是整個progressBar的長度

第一進度和第二進度:就是android提供了一個控件上可以同時顯示兩種進度值,最常見的就是用在播放器上,第一進度一般表示當前播放進度,第二進度一般表示當前緩沖進度

是否精確顯示:

 

ProgressBar的關鍵方法

     setprogress             設置第一進度
        setsecondprogress          設置第二進度
        getprogress              獲取第一進度
        getsecondprogress          獲取第二進度
        incrementprogressby              增減第一進度
        incrementsecondprogressby        增減第二進度
        getmax                獲取最大值

上面的看意思就可以看得明白

對話框形式的進度條,

         //progressDialog 的屬性
                progressDialog = new ProgressDialog(ProgressBarActivity.this);
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDialog.setTitle("TEST");
                progressDialog.setMessage("welcome");
                progressDialog.setIcon(R.drawable.ic_launcher);
                //progressDialog 進度條的屬性
                progressDialog.setMax(100);
                progressDialog.setProgress(50);
                progressDialog.setIndeterminate(false);//明確顯示進度
                progressDialog.setButton(ProgressDialog.BUTTON_POSITIVE, "確定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getBaseContext(),"thank you ",Toast.LENGTH_LONG).show();
                    }
                });
                //是否可以通過返回按鈕退出對話框
                progressDialog.setCancelable(true);
                progressDialog.show();

自定義顏色的進度條

 

<style name="Widget.ProgressBar.Horizontal">
        <item name="android:indeterminateOnly">false</item>
        <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
        <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
        <item name="android:minHeight">20dip</item>
        <item name="android:maxHeight">20dip</item>
        <item name="android:mirrorForRtl">true</item>
    </style>

找到progressDrawable ,然后進入progress_horizontal.xml  可以看到系統progessbar的樣式定義

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ff9d9e9d"
                    android:centerColor="#ff5a5d5a"
                    android:centerY="0.75"
                    android:endColor="#ff747674"
                    android:angle="270"
            />
        </shape>
    </item>
    
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                        android:startColor="#80ffd300"
                        android:centerColor="#80ffb600"
                        android:centerY="0.75"
                        android:endColor="#a0ffcb00"
                        android:angle="270"
                />
            </shape>
        </clip>
    </item>
    
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                        android:startColor="#ffffd300"
                        android:centerColor="#ffffb600"
                        android:centerY="0.75"
                        android:endColor="#ffffcb00"
                        android:angle="270"
                />
            </shape>
        </clip>
    </item>
    
</layer-list>

拷貝這份文件到工程drawable目錄下,這份文件,我們可以更改進度條的顏色,角度。從而改變進度條的樣式。

最后記者在ProgressBar的屬性中添加ProgressDrawable屬性

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM