Как сделать 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" />
это работает именно так, как вы ожидаете, с средним расширением как обычно, чтобы соответствовать желаемой ширине, и все три изображения расширяется, чтобы соответствовать желаемой высоте. Я надеюсь, что другие могут извлечь из этого пользу!