Seekbar progressDrawable 在某些设备中偏移(主要在平板电脑中观察到)
Seekbar progressDrawable is offset in some of the devices (mostly observed in tablets)
我有一个 AppCompatSeekBar
,它有一个 progressDrawable
,他们在搜索栏的填充和非填充部分内部使用 9 - 补丁图像。在大多数 phone 中,一切似乎都运行良好。但是当涉及到少数平板电脑时,搜索轨道会向顶部偏移。
以下是 phone 中搜索栏的屏幕截图,它的行为与应有的完全一样:
这是 10 英寸的平板电脑:
可以观察progressDrawable或者seek偏移到顶部
关于我的代码,这是在我的 xml 中:
<android.support.v7.widget.AppCompatSeekBar
android:id="@+id/sbAudioSeek"
fontPath="fonts/Roboto-Light.ttf"
android:layout_width="@dimen/seek_width"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:background="@android:color/transparent"
android:max="255"
android:paddingRight="3dp"
android:progress="0"
android:progressDrawable=
"@drawable/seekbar_track_progress_notifier"
android:splitTrack="false"
android:thumb="@drawable/icon_thumb_notifier" />
现在这是我的 seekbar_track_progress_notifier.xml
这是我的 progressDrawable:
<?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/icon_track" />
<item android:id="@android:id/progress">
<scale
android:drawable="@drawable/seek_track_selected"
android:scaleWidth="100%" />
</item>
</layer-list>
这里 seek_track_selected
和 icon_track
是我用于搜索栏的 9 个补丁图像。我一无所知,因为它只能在少数设备上运行,而不能在某些平板电脑上运行。
如您所述,seek_track_selected
是 9 补丁 png。
我不确定您的所有 png 文件是否都已正确修补。
我的建议是,交叉检查它工作的设备和不工作的设备的显示密度是多少。然后将这些补丁标记与特定文件进行比较。也许你错过了修补顶部一个 dpi 特定的 png。
不确定,这是一个疯狂的猜测。 ;-)
我有一个 AppCompatSeekBar
,它有一个 progressDrawable
,他们在搜索栏的填充和非填充部分内部使用 9 - 补丁图像。在大多数 phone 中,一切似乎都运行良好。但是当涉及到少数平板电脑时,搜索轨道会向顶部偏移。
以下是 phone 中搜索栏的屏幕截图,它的行为与应有的完全一样:
这是 10 英寸的平板电脑:
可以观察progressDrawable或者seek偏移到顶部
关于我的代码,这是在我的 xml 中:
<android.support.v7.widget.AppCompatSeekBar
android:id="@+id/sbAudioSeek"
fontPath="fonts/Roboto-Light.ttf"
android:layout_width="@dimen/seek_width"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:background="@android:color/transparent"
android:max="255"
android:paddingRight="3dp"
android:progress="0"
android:progressDrawable=
"@drawable/seekbar_track_progress_notifier"
android:splitTrack="false"
android:thumb="@drawable/icon_thumb_notifier" />
现在这是我的 seekbar_track_progress_notifier.xml
这是我的 progressDrawable:
<?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/icon_track" />
<item android:id="@android:id/progress">
<scale
android:drawable="@drawable/seek_track_selected"
android:scaleWidth="100%" />
</item>
</layer-list>
这里 seek_track_selected
和 icon_track
是我用于搜索栏的 9 个补丁图像。我一无所知,因为它只能在少数设备上运行,而不能在某些平板电脑上运行。
如您所述,seek_track_selected
是 9 补丁 png。
我不确定您的所有 png 文件是否都已正确修补。
我的建议是,交叉检查它工作的设备和不工作的设备的显示密度是多少。然后将这些补丁标记与特定文件进行比较。也许你错过了修补顶部一个 dpi 特定的 png。
不确定,这是一个疯狂的猜测。 ;-)