android - 在 Android 中滑动时缩小的 Seekbar 按钮(使用自己的拇指 xml)

标签 android xml android-layout

我遇到了 Android SeekBar 的问题。

当我使用标准拇指(蓝色)时没问题,但是当我使用自己的主题(如 scrubber_control.xml)时出现问题 - 按钮变窄了。我试过设置最小高度、填充、将高度/宽度添加到 scrubber_control 项目,但无法解决这个奇怪的问题。

enter image description here

布局

<SeekBar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/question_seekbar"
android:thumb="@drawable/scrubber_control"
/>

洗涤器控制.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/scrubber_control_disabled_holo" />
<item android:state_pressed="true" android:drawable="@drawable/scrubber_control_pressed_holo" />
<item android:state_selected="true" android:drawable="@drawable/scrubber_control_focused_holo" />
<item android:drawable="@drawable/scrubber_control_normal_holo" />
</selector>

最佳答案

在定义拇指高度和宽度的可绘制对象中创建自定义形状 xml

用于 scrubber_control.xml 中使用的所有三种形状

例如:

在 drawable 文件夹中添加这些 xmls

custom_scrubber_control_pressed_holo.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <size
            android:height="40dp"
            android:width="40dp" />

        <solid android:color="@android:color/transparent" />
    </shape>
</item>
<item android:drawable="@drawable/scrubber_control_pressed_holo"/>

</layer-list>

custom_scrubber_control_focused_holo.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <size
            android:height="40dp"
            android:width="40dp" />

        <solid android:color="@android:color/transparent" />
    </shape>
</item>
<item android:drawable="@drawable/scrubber_control_focused_holo"/>

</layer-list>

custom_scrubber_control_disabled_holo.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <size
            android:height="40dp"
            android:width="40dp" />

        <solid android:color="@android:color/transparent" />
    </shape>
</item>
<item android:drawable="@drawable/scrubber_control_disabled_holo"/>

</layer-list>

custom_scrubber_control_normal_holo.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <size
            android:height="40dp"
            android:width="40dp" />

        <solid android:color="@android:color/transparent" />
    </shape>
</item>
<item android:drawable="@drawable/scrubber_control_normal_holo"/>

</layer-list>

之后你只需要像这样改变你的选择器。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_enabled="false"  android:drawable="@drawable/custom_scrubber_control_disabled_holo" />
 <item android:state_pressed="true" android:drawable="@drawable/custom_scrubber_control_pressed_holo" />
 <item android:state_selected="true" android:drawable="@drawable/custom_scrubber_control_focused_holo" />
 <item android:drawable="@drawable/custom_scrubber_control_normal_holo" />
 </selector>

关于android - 在 Android 中滑动时缩小的 Seekbar 按钮(使用自己的拇指 xml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887424/

相关文章:

xml - 在 XSLT 中,井号 (#) 后跟数字是什么意思?

python - 如何使用python将嵌套子节点添加到xml文档中的父节点?

android - 动态设置 View 的id

android - 如何使用 flutter 本地通知更改 Android 通知托盘上的图标?

java - Activity 内部出现奇怪的 NullPointerException

sql-server - 如何更改 SQL 脚本以使金额列右对齐

android - 如何在android textview中进行文本对齐并同时使用自定义字体样式?

android - 如何从 Android L Preview Design 制作 Android List View Design

java - 如何使用 Eclipse 的自定义 SurroundWith 功能

java - 如何让 ProGuard 保留整个(整个)类(带有字段和方法)而不使用 "-keep"