我有一个AppCompatSeekBar
,其progressDrawable
并且他们在内部使用9个补丁图片,用于搜索栏的填充和非填充部分。在大多数手机中,一切似乎都能正常工作。但是当涉及到很少的平板电脑时,寻道轨道向顶部偏移。
以下是手机中搜索栏的屏幕截图,其行为与其应有的完全相同:
这是一个10英寸的平板电脑:
您可以观察progressDrawable或者搜索偏移到顶部。
关于我的代码,这是在我的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个补丁图片。我很无能为力,因为它在少数设备上工作,而不是在某些平板电脑上工作。
答案 0 :(得分:0)
正如您所提到的,seek_track_selected
是9-patch png。
我不确定你的所有png文件是否都已正确修补。
我的建议是,交叉检查它工作的设备的显示密度和它不起作用的设备。然后将这些补丁标记与特定文件进行比较。也许你错过了修补一个dpi特定png的顶部部分。
不确定,这是一个疯狂的猜测。 ; - )