android - 如何将自定义搜索栏的 ProgressDrawable 大小设置为小于 ProgressBackground

标签 android android-layout

我有一个自定义的 seekbar,它不太好用。

我希望 seekbar 看起来像这样:

Notice the progress bar is 'skinnier' than the background

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

The progress bar and background are the same size

忽略轻微的颜色和尺寸问题,我遇到的问题是绿色 progress 尺寸。有什么办法可以让它比背景小吗?我已经在 XML 中尝试了 sizepadding 标签,甚至尝试用剪辑 摆弄两个矩形重力,但还没有运气。

这是我的 Seekbar 可绘制对象

<?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>  

以及布局 fragment 中的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" />

最佳答案

要更改高度进度 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>

关于android - 如何将自定义搜索栏的 ProgressDrawable 大小设置为小于 ProgressBackground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34263854/

相关文章:

android - LinearLayout * 元素大小

android - 根据焦点更改android编辑框中的文本颜色

java - Gridview View 高度未包裹所有水平项目

android - 你能在替换时给 fragment 额外的东西吗?

android - 缺少 Facebook Android SDK Audience Network NativeAdScrollView.CustomAdView

android - 扩大最大宽度的ListView中的ImageView

android - 如何在 android 中制作类似 google io 2014 应用程序的 ListView ?

Android - WebView 中来自 android_assets 的 html,CSS 未在 ICS 中加载

android - Android 设备上的加密

android - 异步任务中的 HTTP GET 不起作用