13

我正在使用一个SeekBar完美无缺的作品。但我想增加进度条的高度,因为原生高度没有那么高。

那么如何动态或通过 XML 更改进度条的高度呢?

4

5 回答 5

31

您可以通过 XML 执行此操作。

它会在您的应用程序中正常工作。在您提到进度条标记的 XML 中进行这个简单的集成。

首先,您需要在项目的 values->styles.xml 中定义进度条的样式。就像是:

<style name="tallerBarStyle" parent="@android:style/Widget.SeekBar">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
<item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item>
<item name="android:minHeight">8dip</item>
<item name="android:maxHeight">20dip</item>
</style>

将 maxHeight 编辑为您想要达到的高度。

然后在你的 ProgressBar 添加:

 android:style="@style/tallerBarStyle"

它将完美地工作。

于 2013-05-13T07:13:13.940 回答
11

您必须为所有方向添加一些填充,并设置 SeekBar 的最小和最大高度。

这是我使用的一个示例:

    <?xml version="1.0" encoding="utf-8"?>
    <SeekBar xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:progressDrawable="@drawable/custom_player_seekbar_background"
            android:paddingTop="10dp" 
            android:paddingBottom="10dp" 
            android:thumb="@drawable/bt_do_player" 
            android:paddingLeft="30dp" 
            android:paddingRight="30dp" 
            android:minHeight="6dp"
            android:maxHeight="6dp" 
            android:layout_centerVertical="true"/>
于 2013-05-13T07:18:56.027 回答
2

要创建自定义搜索栏,请在您的xml 文件中添加以下代码:

  <androidx.appcompat.widget.AppCompatSeekBar
                android:id="@+id/seek_homelayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/_10sdp"
                android:maxHeight="8dip"
                android:minHeight="8dip"
                android:progressBackgroundTint="@color/thumb"
                android:progressDrawable="@drawable/sb_progress_drawable"
                android:progressTint="@color/black"
                android:secondaryProgressTint="@color/colorPrimary"
                android:thumb="@drawable/sb_thumb"
                android:thumbTint="@color/colorPrimary" />

在drawable中创建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>

如果你想在搜索栏上使用拇指,那么在你的 drawable 中添加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="12dp"
        android:height="12dp" />
    <solid android:color="@color/colorPrimary" />
</shape>
于 2020-07-09T08:14:39.810 回答
1

你有maxHeighminHeight属性。此属性将确定搜索栏的高度。

android:maxHeight="3dp" 
android:minHeight="3dp"

https://www.lvguowei.me/post/customize-android-seekbar-color/

干杯。

于 2018-10-03T16:07:05.107 回答
0

以上都不起作用,只需设置android:layout_height="10dp"为您想要的任何值!

<SeekBar
    android:id="@+id/seekBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="0dp"
    android:layout_height="10dp"

    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent" />
于 2021-03-29T11:24:32.600 回答