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

у меня есть три 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 ответов


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

<?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" />

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