Android Material ProgressBar 水平实现

宰烈
2023-12-01

1、简单粗暴

style="?android:attr/progressBarStyleHorizontal"

(跑个题:@resource的方式可以获取到当前应用主题下的 style 属性值,which一般可以在属性文件夹 values 下找到;而?android或者?attr这种,表示从Theme中查找引用的资源名,经常用在多主题时的场景,属性值会随着主题而改变。)

 

2、自己写style

新建一个drawable.xml

<?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="1dip" />
            <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="1dip" />
                <gradient
                    android:startColor="#006633"
                    android:centerColor="#eecc33"
                    android:centerY="0.75"
                    android:endColor="#009933"
                    android:angle="270"
                    />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="1dip" />
                <gradient
                    android:startColor="#00ff66"
                    android:centerColor="#00cc66"
                    android:centerY="0.75"
                    android:endColor="#009966"
                    android:angle="270"
                    />
            </shape>
        </clip>
    </item>

</layer-list>

 

style样式表:

 <style name="customProgressBar">
        <item name="android:progressDrawable">@drawable/progress_horizontal</item>
        <item name="android:indeterminateOnly">false</item>
        <item name="android:minHeight">10dip</item>
        <item name="android:maxHeight">10dip</item>
        <item name="android:indeterminateDrawable">
            @android:drawable/progress_indeterminate_horizontal
        </item>
    </style>
应用:style="@style/customProgressBar"
 类似资料: