SeekBar从代码中设置线条粗细和颜色

问题描述 投票:4回答:2

我想完全以编程方式创建一个搜索栏。所有格式都是从代码本身完成的。我甚至无法使用xml文件中的drawable。

一切都工作正常,除了搜索条线的drawable。我可以改变线条的颜色/将其改为某些可绘制的等但不能改变线条的粗细。

我得到以下输出:

但我希望有点像下面的细线:

android android-custom-view seekbar android-drawable android-seekbar
2个回答
19
投票

您可以通过使用搜索栏的两个属性来更改搜索栏的大小/厚度。哪个是:

android:minHeight="2dip"

android:maxHeight="2dip"

例如:

            <SeekBar
                android:progressDrawable="@drawable/seek_progress"
                android:thumb="@drawable/thumb"
                android:id="@+id/seekDistance"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:max="80"
                android:minHeight="2dip"
                android:maxHeight="2dip"
                />

0
投票

为此,您必须在xml中创建一个新的可绘制形状,右键单击drawable文件夹并创建新的资源文件名称“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>
            <solid
                android:color="#bababa"/>
            <size
                android:height="13dp"
                android:width="13dp" />
            <corners android:radius="7dp" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid
                    android:color="@color/colorAccent"/>
                <corners android:radius="7dp" />
            </shape>
        </clip>
    </item>
</layer-list>

现在将此drawable应用于您的搜索栏,同时设置android:maxHeight

        <SeekBar
        android:id="@+id/sb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="10"
        android:maxHeight="10dp"
        android:minHeight="10dp"
        android:progressDrawable="@drawable/progress_drawable"/>
© www.soinside.com 2019 - 2024. All rights reserved.