我一直在尝试制作自定义SeekBar。它应该有圆角。甚至SeekBar的进度也应该在两侧都有圆角。我不需要拇指这样的事情。

android - 自定义SeekBar拇指显示不需要的背景-LMLPHP

为此,我制作了一个名为 custom_seekbar.xml layer-list 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 android:shape="rectangle">
            <corners android:radius="20dp" />
            <solid android:color="#F0E9DC" />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape android:shape="rectangle">
                <corners android:radius="20dp" />
                <solid android:color="#F0E9DC" />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <corners android:radius="20dp" />
                <solid android:color="#E38F71" />
            </shape>
        </clip>
    </item>

</layer-list>

为了处理移动的圆角,我想到了使用高度等于SeekBar的圆拇指。这是 thumb.xml :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <size android:height="16dp"
        android:width="16dp"/>

    <corners android:radius="20dp"/>

    <solid android:color="#E38F71"/>

</shape>

我在 Activity 中显示了这样的SeekBar:
<SeekBar
        android:layout_width="250dp"
        android:layout_height="16dp"
        android:layout_centerInParent="true"
        android:progressDrawable="@drawable/custom_seekbar"
        android:thumb="@drawable/thumb" />

唯一的问题是拇指。它没有按预期显示。它具有这样的不需要的背景:

android - 自定义SeekBar拇指显示不需要的背景-LMLPHP

如果我设置透明的拇指,则进度将不再圆滑。我什至尝试将椭圆形状用于拇指。有人告诉我我要去哪里错了吗?或者,如果还有其他方法可以达到预期的效果。任何帮助将非常感激。

最佳答案

添加android:splitTrack="false",将解决您的问题。我还可以使用android:shape="oval"代替圆角的rectangle作为thumb.xml

关于android - 自定义SeekBar拇指显示不需要的背景,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33037965/

10-12 00:25