要实现Android ProgressBar的多重显示,你可以使用多个ProgressBar叠加在一起,每个ProgressBar具有不同的颜色和宽度。这样,你可以通过改变每个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>
res/drawable
目录下创建一个名为progress_drawable.xml
的文件,用于定义每个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>
// 获取ProgressBar实例
ProgressBar progressBar1 = findViewById(R.id.progressBar1);
ProgressBar progressBar2 = findViewById(R.id.progressBar2);
// 设置ProgressBar的可见性
progressBar1.setVisibility(View.VISIBLE);
progressBar2.setVisibility(View.GONE);
通过这种方式,你可以实现多个ProgressBar的多重显示。你可以根据需要添加更多的ProgressBar,并通过改变它们的可见性来显示不同的进度。