web-dev-qa-db-ja.com

不要な背景を示すカスタムSeekBarサム

カスタムSeekBarを作成しようとしています。角が丸いはずです。 SeekBarの進行状況でも、両側に角が丸いはずです。親指はいらない。このようなもの。

Custom Seekbar with round corners

これを達成するために、私はlayer-list xmlファイル、名前はcustom_seekbar.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>  

そして、私は私のアクティビティでSeekBarを次のように表示しています:

<SeekBar
        Android:layout_width="250dp"
        Android:layout_height="16dp"
        Android:layout_centerInParent="true"
        Android:progressDrawable="@drawable/custom_seekbar"
        Android:thumb="@drawable/thumb" />  

唯一の問題は親指です。期待どおりに表示されていません。次のような不要な背景があります。

Custom Seekbar thumb with unwanted background

透明なつまみを設定すると、進行状況が丸くなりません。 Ovalの形を親指で使ってみました。誰かがどこで私が間違っているのか教えてください?または、他に方法があれば、希望する結果を得ることができます。どんな助けでも本当にいただければ幸いです。

23
Anjani

Android:splitTrack="false"を追加すると、問題が解決します。 Android:shape="oval"には、角が丸いrectangleではなくthumb.xmlも使用します

76
Blackbelt