ProgressBar自定义样式(仿应用宝下载样式)

244 阅读1分钟
    <RelativeLayout
            android:id="@+id/rl_progress"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:gravity="center_horizontal"
            android:onClick="@{listener}"
            android:layout_weight="1">
            <ProgressBar
                android:id="@+id/progress_bar"
                style="@style/update_progress_horizontal"
                android:layout_width="343dp"
                android:layout_height="44dp"
                android:layout_marginTop="8dp"
                android:progress="@{bean.progress}"/>
            <TextView
                android:id="@+id/tv_progress"
                android:layout_width="343dp"
                android:layout_height="44dp"
                android:layout_marginTop="8dp"
                android:textSize="14sp"
                android:background="@drawable/server_models_download_bg"
                android:text="下载"
                android:gravity="center"
                android:textColor="@color/color_orange_DAB177"></TextView>
        </RelativeLayout>
  • 自定义样式
  <style name="update_progress_horizontal" parent="Widget.AppCompat.ProgressBar.Horizontal">
        <item name="android:indeterminateOnly">false</item>
        <!--进度条的进度颜色drawable文件-->
        <item name="android:progressDrawable">@drawable/progress_indeterminate_horizontal</item>
        <!--进度条的最小高度-->
        <item name="android:minHeight">17dp</item>
        <!--进度条的最大高度-->
        <item name="android:maxHeight">17dp</item>
    </style>
  • layer-list自定义progress_indeterminate_horizontal
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--未加载的进度区域-->
    <item android:id="@android:id/background">
        <shape>
            <!--进度条的圆角-->
            <corners android:radius="4dip" />
            <!--未加载的进度区域颜色-->
            <solid android:color="#FFDBDBDB"/>
        </shape>
    </item>
    <!--缓冲的进度的颜色,一般视频播放的缓冲区域-->
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <!--进度条的圆角-->
                <corners android:radius="4dip" />
                <!--缓冲的进度的颜色,一般视频播放的缓冲进度-->
                <solid android:color="#FF272C31"/>
            </shape>
        </clip>
    </item>
    <!--已经加载完的进度的区域-->
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <!--进度条的圆角-->
                <corners android:radius="4dip" />
                <!--已经加载完的进度的颜色-->
                <solid android:color="#FF272C31"/>
            </shape>
        </clip>
    </item>
</layer-list>