web-dev-qa-db-ja.com

Android-デフォルトのSeekBarの厚さを変更する方法?

私はこのSeekBarを持っています:

        <SeekBar
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="26dp"
        Android:id="@+id/seekbar"
        Android:visibility="gone"
        Android:maxHeight="3dp"/>

MaxHeightを使用してこのSeekBarの太さを変更しようとしました。しかし、何も変わっていません。次のようになります。

enter image description here

このSeekBarの太さを3 dpに変更して、次のようにしたいと思います。 enter image description here

だから私の質問は、どういうわけかSeekBarの厚さを変更することは可能ですか?はいの場合、どのように?

30
Joe Rakhimov

厚さを調整するには、progressDrawablethumbSeekBarを変更する必要があります。

<SeekBar
    Android:id="@+id/seekBar"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_below="@id/indSeekBar"
    Android:layout_marginTop="48dp"
    Android:progressDrawable="@drawable/seek_bar"
    Android:thumb="@drawable/seek_thumb"
    />

ドローアブルフォルダーに追加seek_bar.xml

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:id="@Android:id/background">
        <shape
            Android:shape="line">
            <stroke
                Android:color="@color/seek_bar_background"
                Android:width="@dimen/seek_bar_thickness"/>
        </shape>
    </item>

    <item Android:id="@Android:id/progress">
        <clip>
            <shape
                Android:shape="line">
                <stroke
                    Android:color="@color/seek_bar_progress"
                    Android:width="@dimen/seek_bar_thickness"/>
            </shape>
        </clip>
    </item>

    <item Android:id="@Android:id/secondaryProgress">
        <clip>
            <shape
                Android:shape="line">
                <stroke
                    Android:color="@color/seek_bar_secondary_progress"
                    Android:width="@dimen/seek_bar_thickness"/>
            </shape>
        </clip>
    </item>
</layer-list>

seek_thumb.xml

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">
    <size
        Android:height="@dimen/seek_bar_thumb_size"
        Android:width="@dimen/seek_bar_thumb_size"
        />
    <solid Android:color="@color/seek_bar_progress"/>
</shape>

寸法リソースに追加(これを変更して厚さを調整):

<dimen name="seek_bar_thickness">4dp</dimen>
<dimen name="seek_bar_thumb_size">20dp</dimen>

色リソースを追加します。

<color name="seek_bar_background">#ababab</color>
<color name="seek_bar_progress">#ffb600</color>
<color name="seek_bar_secondary_progress">#3399CC</color>

enter image description here

26
Vaibhav Jani

あなたはこのようにするべきです:

<SeekBar
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_marginTop="20dp"
    Android:thumb="@drawable/seek"
    Android:progressDrawable="@drawable/seek_style"
    />

つまみはドラッグできる円で、progressDrasableは進行のスタイルです。

seek_style.xml

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:id="@Android:id/background">
        <shape>
            <corners Android:radius="5dip" />
            <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="5dip" />
                <gradient
                    Android:startColor="#80ffd300"
                    Android:centerColor="#80ffb600"
                    Android:centerY="0.75"
                    Android:endColor="#a0ffcb00"
                    Android:angle="270"
                    />
            </shape>
        </clip>
    </item>

    <item Android:id="@Android:id/progress">
        <clip>
            <shape>
                <corners Android:radius="5dip" />
                <gradient
                    Android:startColor="#ff0099CC"
                    Android:centerColor="#ff3399CC"
                    Android:centerY="0.75"
                    Android:endColor="#ff6699CC"
                    Android:angle="270"
                    />
            </shape>
        </clip>
    </item>
</layer-list>

seek.xml

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="oval">
    <size
        Android:width="20dp"
        Android:height="20dp"
        />
    <solid Android:color="#60f0"/>
</shape>
8
zhangxiaoping