9

我正在尝试创建一个自定义样式的搜索栏。我有两个九个补丁图像,一个是灰色拉伸条 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 相同的效果(我不想使用形状来绘制我的条形图)?

4

2 回答 2

16

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>
于 2012-06-19T05:37:05.377 回答
11

我使用 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>
于 2011-08-26T06:33:10.397 回答