Android progressbar怎樣實(shí)現(xiàn)進(jìn)度條的多重顯示

小樊
81
2024-10-14 23:00:20

要實(shí)現(xiàn)Android ProgressBar的多重顯示,你可以使用多個(gè)ProgressBar疊加在一起,每個(gè)ProgressBar具有不同的顏色和寬度。這樣,你可以通過(guò)改變每個(gè)ProgressBar的可見(jiàn)性來(lái)顯示不同的進(jìn)度。以下是一個(gè)簡(jiǎn)單的示例:

  1. 在布局文件中添加多個(gè)ProgressBar:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:max="100"
        android:progress="50"
        android:progressDrawable="@drawable/progress_drawable" />

    <ProgressBar
        android:id="@+id/progressBar2"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:max="100"
        android:progress="75"
        android:progressDrawable="@drawable/progress_drawable" />

</LinearLayout>
  1. res/drawable目錄下創(chuàng)建一個(gè)名為progress_drawable.xml的文件,用于定義每個(gè)ProgressBar的樣式:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dp" />
                <gradient
                    android:startColor="#80FFFFFF"
                    android:centerColor="#80FFFFFF"
                    android:centerY="0.75"
                    android:endColor="#00FFFFFF"
                    android:angle="270" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dp" />
                <gradient
                    android:startColor="#FFFFFF"
                    android:centerColor="#FFFFFF"
                    android:centerY="0.75"
                    android:endColor="#00FFFFFF"
                    android:angle="270" />
            </shape>
        </clip>
    </item>
</layer-list>
  1. 在Activity或Fragment中,根據(jù)需要設(shè)置每個(gè)ProgressBar的可見(jiàn)性:
// 獲取ProgressBar實(shí)例
ProgressBar progressBar1 = findViewById(R.id.progressBar1);
ProgressBar progressBar2 = findViewById(R.id.progressBar2);

// 設(shè)置ProgressBar的可見(jiàn)性
progressBar1.setVisibility(View.VISIBLE);
progressBar2.setVisibility(View.GONE);

通過(guò)這種方式,你可以實(shí)現(xiàn)多個(gè)ProgressBar的多重顯示。你可以根據(jù)需要添加更多的ProgressBar,并通過(guò)改變它們的可見(jiàn)性來(lái)顯示不同的進(jìn)度。

0