android - 自定义 Android 搜索栏

标签 android android-layout seekbar android-seekbar

我要在 Android 中自定义 Seekbar,但我遇到了一个问题。

这就是我要做的:image

这是我现在得到的:

currnet

这是我的代码:

<SeekBar
        android:id="@+id/blueSlider"
        android:layout_width="0dp"
        android:layout_height="60dp"
        android:layout_marginStart="50dp"
        android:layout_marginTop="50dp"
        android:layout_marginEnd="10dp"
        android:splitTrack="false"
        android:maxHeight="40dp"
        android:shape="oval"
        android:thumbOffset="-20dp"
        android:secondaryProgress="0"
        android:progressDrawable="@drawable/styled_progress"
        android:max="@integer/slider_max_value"
        android:thumb="@drawable/oval_seekbar_thumb"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/blueText"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

styled_progress.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <corners
                android:radius="25dp"/>
            <gradient
                android:startColor="@color/gradient_start"
                android:endColor="@color/gradient_end"
                android:angle="0" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <corners
                    android:radius="90dp"/>
            </shape>
        </clip>
    </item>
</layer-list>

oval_seekbar_thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/white" />
            <size android:height="25dp" android:width="25dp"/>
        </shape>
    </item>
</selector>

请帮我解决这个问题。(缺少白线) 谢谢

最佳答案

您可以尝试在次要进度周围添加边距

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">


    <!--    BACKGROUND-->
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <corners
                android:radius="25dp"/>
            <size android:height="30dp"
                android:width="200dp" />
            <gradient
                android:startColor="@color/primary"
                android:endColor="@color/primary_light"
                android:angle="0" />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress"
        android:left="10dp"
        android:top="14dp"
        android:right="10dp"
        android:bottom="14dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/white" />
        </shape>

    </item>
</layer-list>

enter image description here

关于android - 自定义 Android 搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58495649/

相关文章:

android - TabHost 不适用于 view pager android

android - 在 Activity 布局中使用 Admob 时的白色状态栏

android - 我应该为 Android 应用创建多大的尺寸?

android - 是否可以将 SeekBar 的拇指图像延伸到栏外?

android - 支持 ActionBar 不会使用 API 21 显示正确的颜色

Android 工作人员被取消,没有显示原因

android - Android套接字连接超时

android - 将edittext底线颜色更改为透明颜色

java - 搜索栏保留 1 位小数

android - 反转 SeekBar 值并使用对数/指数刻度