2011-09-29 51 views
14

我有三個9-patch PNG,它們組成了一個按鈕(左側,中間,右側)的背景。我想我在其中可以指定爲背景,在XML按鈕,東西線沿線的一個繪製這三個圖像組合在一起:如何從多個圖像製作一個drawable?

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

這可能嗎?

回答

33

經過一番反覆試驗,我能夠以令人滿意的方式解決問題。我簡單地實現一個層名錄可繪如下:

<?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值以像素爲單位在兩個按鈕側的圖像的寬度。

要使用此繪製,只需調用它像任何其他繪製:

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

這工作正是你如何指望它,用中指擴大爲正常,以適應所需的寬度,和所有三個圖像擴展到適合所需的高度。我希望別人能從中受益!

+3

如果使用「dp」而不是「px」,它會給出更好的結果。使用px會在高密度設備中產生非常小的左側和右側按鈕。 – seema

相關問題