【Android】自定义progressBar样式

1、效果图如下
在这里插入图片描述
2、layout中xml布局如下:

<RelativeLayout
    android:layout_height="16dp"
    android:layout_width="match_parent">

    <ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:id="@+id/progressBar"
        android:layout_gravity="center_horizontal"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:progress="30"
        android:progressDrawable="@drawable/progress_info" />

    <TextView
        android:id="@+id/tv_progress"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="完整度 30%"
        android:textSize="11sp" />
</RelativeLayout>

3、重点 progress_info如下

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@android:id/background"
        android:gravity="center_vertical|fill_horizontal">
        <shape android:shape="rectangle">
            <size android:height="16dp" />
            <solid android:color="@color/color_bg" />
            <corners android:radius="8dp" />
        </shape>
    </item>
    <!--如果有需要可以进行设置-->
    <!--<item-->
    <!--android:id="@android:id/secondaryProgress"-->
    <!--android:gravity="center_vertical|fill_horizontal">-->
    <!--<scale android:scaleWidth="100%">-->
    <!--<shape android:shape="rectangle">-->
    <!--&lt;!&ndash;android:tint="?attr/colorControlActivated">&ndash;&gt;-->
    <!--<size android:height="4dp" />-->
    <!--<solid android:color="@color/trans" />-->
    <!--<corners android:radius="2dp" />-->
    <!--</shape>-->
    <!--</scale>-->
    <!--</item>-->
    <item
        android:id="@android:id/progress"
        android:gravity="center_vertical|fill_horizontal">
        <scale android:scaleWidth="100%">
            <shape android:shape="rectangle">
                <size android:height="16dp" />
                <solid android:color="@color/color_red" />
                <corners android:radius="8dp" />
            </shape>
        </scale>
    </item>

</layer-list>

4、一顿的设置

progressBar.setProgress(progress);
tv_progress.setText("完整度 " + progress + "%");

5、ok

发布了49 篇原创文章 · 获赞 46 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/mingtiannihao0522/article/details/104195839