2011-09-29 12 views
14

私は3つの9パッチPNGを持っていて、一緒にボタンの背景を構成しています(左側、中央、右側)。複数のイメージからドロアブルを作成するにはどうすればよいですか?

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" /> 
:私は、私はXMLでボタンの背景として指定できる描画可能に一緒にこれら三つの画像を合成するための線に沿って何かをしたいと思います

これは可能ですか?

答えて

33

いくつかの試行錯誤の末、私は満足のいく方法で問題を解決することができました。 26px値は画素内の2枚のボタン側画像の幅である

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

を次のように私は単にレイヤリストドロアブルを実施しました。

単に他の描画可能なようにそれを呼び出し、この描画可能を使用するには:

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

これは、あなたが途中で所望の幅に合わせて、通常のように拡大して、それを期待する方法を正確に動作し、すべての3枚の画像所望の高さに合わせて拡張する。私は他人がこれで恩恵を受けることを願っている

+3

"px"の代わりに "dp"を使用すると、より良い結果が得られます。 pxを使用すると、高密度デバイスの左右のボタンが非常に小さくなります。 – seema

関連する問題