Как сделать вывод из нескольких изображений?

У меня есть три 9-патча PNG, которые вместе составляют фон для кнопки (левая, средняя, ​​правая). Я хотел бы объединить эти три изображения вместе в drawable, которые я могу указать в качестве фона для кнопки в XML, что-то вроде строк:

res/drawable/button_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/button_left_side" />

<nine-patch android:src="@drawable/button_middle" />

<nine-patch android:src="@drawable/button_right_side" />

res/layout/main.xml:

<button android:background="@drawable/button_background" />

Возможно ли это?

Ответы

Ответ 1

После некоторой пробной ошибки я смог решить проблему удовлетворительным образом. Я просто выполнил вывод Layer-List следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/btn_left" android:left="0px" />
    <item android:drawable="@drawable/btn_middle" 
        android:left="26px" android:right="26px" />
    <item android:drawable="@drawable/btn_right" android:right="0px" />
</layer-list>

Где значения 26px - это ширина двух изображений на стороне кнопки в пикселях.

Чтобы использовать этот drawable, просто назовите его, как и любой другой drawable:

<bitmap android:src="@drawable/button_background" />

Это работает именно так, как вы ожидали, со средним, расширяющимся, как обычно, чтобы соответствовать желаемой ширине, и все три изображения расширяются, чтобы соответствовать желаемой высоте. Я надеюсь, что другие могут воспользоваться этим!