不同 API 上的奇怪自定义 SeekBar 可绘制行为

Posted

技术标签:

【中文标题】不同 API 上的奇怪自定义 SeekBar 可绘制行为【英文标题】:Strange custom SeekBar drawable behavior on different APIs 【发布时间】:2017-02-14 14:24:44 【问题描述】:

在运行 android API

在运行 Android API >= 23 的设备上,我的自定义 SeekBar 如下所示:

为什么我的 SeekBar drawable 在设备 API >= 23 上看起来不正确?这是我的 XML

seekbar_progress.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"
    android:drawable="@drawable/seekbar_progress_bg" />
<item android:id="@android:id/progress">
    <scale
        android:drawable="@drawable/seekbar_progress_fill"
        android:scaleWidth="100%" />
</item>

</layer-list>

seekbar_thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <size
            android:
            android: />
        <solid android:color="@color/white" />
        <stroke
            android:
            android:color="@color/gray" />
    </shape>
</item>
</layer-list>

布局文件

<SeekBar
    android:thumb="@drawable/seekbar_thumb"
    android:progressDrawable="@drawable/seekbar_progress"
    android:splitTrack="true"
    android:layout_
    android:layout_
    tools:progress="50" />

【问题讨论】:

【参考方案1】:

由于未知的原因,通过使用 minHeight 和 maxHeight 我能够获得所需的行为

【讨论】:

以上是关于不同 API 上的奇怪自定义 SeekBar 可绘制行为的主要内容,如果未能解决你的问题,请参考以下文章

自定义seekbar详解

自定义seekbar详解

Android自定义可长按 可点击不可拖动的SeekBar

Android自定义可长按 可点击不可拖动的SeekBar

进度部分上的 Seekbar 外阴影

android关于自定义seekbar控件的问题(将横向seekbar改成竖向seekbar)