gpt4 book ai didi

android - 具有顶部/底部属性的项目的层列表

转载 作者:行者123 更新时间:2023-11-30 00:44:41 27 4
gpt4 key购买 nike

我正在尝试按如下方式自定义 SeekBar 的 View :

<SeekBar
android:id="@id/seek_bar_player"
android:layout_width="match_parent"
android:layout_height="6pt"
android:paddingLeft="0pt"
android:paddingRight="0pt"
android:paddingStart="0pt"
android:paddingEnd="0pt"
android:layout_marginBottom="-2pt"
android:layout_above="@id/player_container"
android:progressDrawable="@drawable/seekbar_progress"
android:thumb="@drawable/seekbar_thumb"
android:padding="0pt"
/>

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:bottom="2pt"
android:top="2pt">
<color android:color="@color/seekbarBackground" />
</item>

<item
android:id="@android:id/progress"
android:bottom="2pt"
android:top="2pt">
<clip>
<color android:color="@color/seekbarProgressBackground" />
</clip>
</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
android:width="2pt"
android:height="6pt">
<color android:color="@android:color/holo_red_dark" />
</item>
</layer-list>

这会在 API 25 虚拟设备上产生预期的结果: enter image description here

然而,它在搭载 Android 5.1.1(API 级别 22)的 Levovo Vibe C 上的结果很奇怪: enter image description here

这可能是什么原因?非常感谢任何建议。

最佳答案

原因是 item android:widthandroid:height 直到 API23 才可用。密切关注 Android Studio 以获取如下提示:

API23

因此在较旧的 API22 设备上,它的行为就好像您根本没有设置它们一样。

这里是 seekbar_thumb.xml 文件的替代方案:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/holo_red_dark"/>
<size
android:width="2pt"
android:height="6pt"/>
</shape>

厚度差异可能归因于 pt 而不是 dp,参见 hereandroid documentation .

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="@color/seekbarBackground"/>
<!-- secondary progress optional -->
<item android:id="@android:id/secondaryProgress">
<scale
android:drawable="#00ffff"
android:scaleWidth="100%"/>
</item>
<item android:id="@android:id/progress">
<scale
android:drawable="@color/seekbarProgressBackground"
android:scaleWidth="100%"/>
</item>
</layer-list>

不要在该文件中指定尺寸根本

用法:

<SeekBar
...
android:maxHeight="2pt"
android:progressDrawable="@drawable/seekbar_progress"
android:thumb="@drawable/seekbar_thumb"
/>

maxHeight 限制栏的高度,但不限制拇指。

我再次强烈建议使用 dp 而不是 pt 除非你有充分的理由。

关于android - 具有顶部/底部属性的项目的层列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com