Styled ProgressBar

时间:2016-02-25 16:08:37

标签: android android-drawable android-progressbar

我的目标是创建这样的视图:

要实现这一点,我已经创建了可绘制的进度:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <layer-list>
            <item>
                <shape android:shape="ring"
                    android:innerRadius="0dp"
                    android:thicknessRatio="2.2">
                    <solid android:color="@color/dark_mint"/>
                </shape>
            </item>

            <item>
                <shape
                    android:shape="ring"
                    android:innerRadiusRatio="2.17"
                    android:thicknessRatio="27">
                    <solid android:color="@color/mint"/>
                </shape>
            </item>

            <item>
                <shape
                    android:shape="ring"
                    android:innerRadiusRatio="2.34"
                    android:thicknessRatio="27">
                    <solid android:color="#FFFFFFFF"/>
                </shape>
            </item>
        </layer-list>
    </item>

    <item android:id="@android:id/progress">
            <rotate xmlns:android="http://schemas.android.com/apk/res/android"
                android:fromDegrees="270"
                android:toDegrees="270">
                <shape
                    android:shape="ring"
                    android:innerRadiusRatio="2.31"
                    android:thicknessRatio="40"
                    android:useLevel="true">

                    <solid android:color="@color/light_red"/>
                </shape>
            </rotate>
    </item>

</layer-list> 

该视图似乎在 Android 5 上呈现正常但是在例如它根本没有显示Nexus5(Marshmallow Android 6.0.1 )。似乎使用比率为innerRadius / thickness的环会破坏这个东西。

我设法使用 ovals paddings 来解决这个问题,但它迫使我使用像 dp 这样的绝对维度,并且进度条大小可以变化

您对实施有什么想法吗?

0 个答案:

没有答案