android - Seekbar 进度可绘制不显示和 API 23

标签 android xml view seekbar

我有一个使用 LayerList 作为进度可绘制对象的自定义 SeekBar。在 API <22 的 Android 设备上它似乎工作正常,但在 API 22 上不显示进度可绘制对象。

这是我的 LayerList 代码:

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

<item android:id="@android:id/background">
    <shape android:shape="rectangle">
        <corners android:radius="20dp"/>
        <gradient android:startColor="#0e0e0f" android:endColor="#373938" android:angle="270"/>
        <stroke android:width="10dp"
            android:color="#2d3035" />
        <size android:height="3dp" android:width="500dp"/>
    </shape>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape android:shape="rectangle">
            <corners android:radius="20dp"/>
            <solid android:color="#45ab12" />
            <stroke android:width="10dp"
                android:color="#2d3035"  />
            <size android:height="3dp" android:width="500dp"/>
        </shape>
    </clip>
</item>

这是我的搜索栏:

 <SeekBar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:splitTrack="false"

                android:thumbOffset="5dp"
                android:id="@+id/firstAudioPositionSeekBar"
                android:thumb="@drawable/seekbar_thumb"
                android:progressDrawable="@drawable/seekbar_progress_bg"/>

以下是 API 22 及更低版本的 SeekBar 的屏幕截图: enter image description here

enter image description here

最佳答案

我在 API 22 上遇到了类似的问题并找到了您的问题。你找到一个好的解决方案了吗?
到目前为止,我通过许多实验注意到的是:
1. 在 API 22 上没有实体绘制进度条
2. 在 API 22 设备上绘制的描边值与在所有上层 API 上绘制的不同,这很奇怪,因为它甚至不考虑屏幕尺寸..到底是什么?
3. 即使您在 API 22 上将笔划更改为正确的笔划 - 在小分辨率 (480/800) 和所有其他屏幕尺寸上仍然有很大不同..

我找到了一个解决方案,但我认为它不是最好的。我创建了 3 个单独的可绘制文件(层列表):一个用于具有小分辨率的 API 22,一个用于具有所有其他分辨率的 API 22,一个用于所有 22 以上的 API。我从具有 API 22 的那些中删除了描边并放入项目值:

<item android:id="@android:id/background" android:top="15dp" android:bottom="15dp">

我已经在 10 款不同分辨率的手机上对其进行了测试 - 它运行完美,即使对于大型平板电脑也是如此。不过,我认为必须有更好的解决方案。

最好的问候, 最大

关于android - Seekbar 进度可绘制不显示和 API 23,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42990294/

相关文章:

android - move ImageView : ScrollBy() and ScrollTo()

swift - 从 Collection View 执行segue

android - 从使用 Firefox 移动版查看的 Android 设备上的 anchor 元素中删除点击轮廓

android - 在 android 中隐藏 Spinner 下拉图标

Android - 开发预览中未显示 Actionbar

android - 调整android中的警报对话框

ruby-on-rails - 使用 simple_format 帮助器允许 id 属性

Android 全形按钮

android - 计算两点之间距离的 MapsApp,Android

java - 取消除家庭以外的所有 Activity