I have three 9-patch PNG's which together make up the background for a button (left side, middle, right side). I would like to combine these three images together in a drawable which I can specify as the background for a button in XML, something along the lines of:
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" />
Is this possible?
After some trial-and-error, I was able to solve the problem in a satisfactory way. I simply implemented a Layer-List drawable as follows:
<?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>
Where the 26px
values are the width of the two button side images in pixels.
To use this drawable, simply call it like any other drawable:
<bitmap android:src="@drawable/button_background" />
This works exactly how you would expect it to, with the middle expanding as normal to fit the desired width, and all three images expanding to fit the desired height. I hope others can benefit from this!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With