Android 如何设置自定义seekbar';s ProgressDrawable大小小于ProgressBackground

Android 如何设置自定义seekbar';s ProgressDrawable大小小于ProgressBackground,android,android-layout,Android,Android Layout,我有一个定制的seekbar不太好用 我希望seekbar看起来像这样: 但这是我所能做到的最接近的 忽略轻微的颜色和大小问题,我遇到的问题是绿色的进度大小。有没有办法使它比背景小?我试过在XML中添加size和padding标记,甚至试过用clipgravity来摆弄两个彼此重叠的矩形,但还没有成功 这是我的Seekbardraawable <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="

我有一个定制的
seekbar
不太好用

我希望
seekbar
看起来像这样:

但这是我所能做到的最接近的

忽略轻微的颜色和大小问题,我遇到的问题是绿色的
进度
大小。有没有办法使它比背景小?我试过在
XML
中添加
size
padding
标记,甚至试过用clip
gravity
来摆弄两个彼此重叠的矩形,但还没有成功

这是我的
Seekbar
draawable

<?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="@color/fofo_grey" />

        </shape>
    </item>

    <item android:id="@android:id/progress">

        <clip>
            <shape android:shape="rectangle">
                <corners android:radius="20dp" />
                  <solid android:color="@color/signup_green" />
            </shape>
    </clip>
    </item>

</layer-list>  

以及布局片段中的Seekbar

<SeekBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/seekBar"
    android:layout_below="@+id/textView6"
    android:layout_centerHorizontal="true"
    android:splitTrack="false"
    android:progressDrawable="@drawable/custom_seekbar"
    android:thumb="@drawable/thumb_seekbar"
    android:max="100"
    android:progress="50"
    android:indeterminate="false" />

已设法解决此问题。真不敢相信我花了这么长时间才想出解决办法

<clip>
    <shape android:shape="rectangle">
        <stroke android:color="@color/fofo_grey" android:width="6dp"/>
        <corners android:radius="20dp" />
        <solid android:color="@color/signup_green" />
    </shape>
</clip>

添加了一个与背景元素颜色相同的
笔划
,并调整了
笔划
宽度,以达到所需效果



只需在seekbar drawable中添加笔划属性

即可更改高度进度drawble,只需在布局中添加
android:minHeight=“2dp”
android:maxHeight=“2dp”

更新:

<androidx.appcompat.widget.AppCompatSeekBar
    android:id="@+id/seekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="8dp"
    android:paddingBottom="8dp"
    android:max="100"
    android:minHeight="2dp"
    android:maxHeight="2dp"
    android:background="@android:color/transparent"
    android:progressDrawable="@drawable/sb_progress_drawable"
    android:progress="0"
    android:secondaryProgress="0"
    android:thumbOffset="0dp"
    android:thumb="@drawable/sb_thumb" />

sb_progress_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 android:shape="rectangle">
            <solid android:color="#26FFFFFF"/>
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <scale
            android:scaleWidth="100%" >
            <shape android:shape="rectangle">
                <solid android:color="#26FFFFFF"/>
            </shape>
        </scale>
    </item>

    <item android:id="@android:id/progress">
        <scale
            android:scaleWidth="100%" >
            <shape android:shape="rectangle">
                <solid android:color="#FFFFFF"/>
            </shape>
        </scale>
    </item>

</layer-list>

sb_thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <size android:width="20dp" android:height="20dp" />
    <solid android:color="#FFFFFF" />
</shape>


SeekBar SeekBar=(SeekBar)findViewById(R.id.SeekBar);seekBar.设置刻度(2f);seekBar.setScaleX(2f);恐怕这里运气不好,这使得整个
Seekbar
变得巨大。谢谢David,我在自己的答案中找到了这个解决方案。我会把你的标记为被接受,因为你是有钱人。我写了同样的代码,但progressDrawable没有改变。会做什么?什么是pseekbar xml?这根本没有回答问题,不知道为什么它有这么多选票。哇!接得好!谢谢
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <size android:width="20dp" android:height="20dp" />
    <solid android:color="#FFFFFF" />
</shape>