Android-панель поиска устанавливает собственный стиль, используя изображения из девяти патчей - PullRequest
9 голосов
/ 22 августа 2011

Я пытаюсь создать пользовательскую панель поиска. У меня есть два изображения из девяти пятен: одно - серая растягивающая полоса search_progress.9.png (цвет фона), а другое - зеленая растягивающаяся полоса search_progress_bar.9.png (цвет переднего плана).

Я использую этот 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_bar"></item>
</layer-list>

Моя проблема в том, что вместо бара, заполняющего мою позицию большого пальца, вся полоса все время зеленая (search_progress_bar image). Как я могу получить тот же эффект, что и у Android progress_horizont.xml с моими собственными изображениями (я не хочу использовать фигуры для рисования моей панели)?

Ответы [ 2 ]

16 голосов
/ 19 июня 2012

версия 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>
11 голосов
/ 26 августа 2011

Я решил эту проблему с помощью 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>
...