Android的seekbar设置自定义样式使用九个补丁的图像

我正在尝试创build一个自定义风格的seekbar。 我有两个九贴图,一个是灰色拉伸条search_progress.9.png(背景颜色),另一个是绿色拉伸条search_progress_bar.9.png(前景色)。

我使用这个XML作为我的seekbar的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/search_progress"></item> <item android:id="@android:id/progress" android:drawable="@drawable/search_progress_bar"></item> </layer-list> 

我的问题是,而不是酒吧填补了我的拇指位置,整个酒吧一直是绿色的(search_progress_bar图像)。 我如何获得与Android的progress_horizo​​ntal.xml相同的效果与我自己的图像(我不想使用形状来绘制我的酒吧)?

Solutions Collecting From Web of "Android的seekbar设置自定义样式使用九个补丁的图像"

e_x_p的版本工作得很好,但更简单的版本是

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/background"> <nine-patch android:src="@drawable/progressbar_bg" android:dither="true"/> </item> <item android:id="@android:id/progress"> <clip xmlns:android="http://schemas.android.com/apk/res/android" android:clipOrientation="horizontal" android:gravity="left"> <nine-patch android:src="@drawable/progressbar_status" android:dither="true"/> </clip> </item> </layer-list> 

我用一个ClipDrawable解决了这个问题。 这对我来说是有效的:

将@ drawable / search_progress_drawable设置为progressDrawable。

search_progress_drawable.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/search_progress"></item> <item android:id="@android:id/progress" android:drawable="@drawable/search_progress_clip"></item> </layer-list> 

search_progress_clip.xml:

 <?xml version="1.0" encoding="utf-8"?> <clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/search_progress_bar" android:clipOrientation="horizontal" android:gravity="left"> </clip>