23

ボタンの背景 (左側、中央、右側) を構成する 3 つの 9 パッチ PNG があります。これら 3 つの画像を、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" />

これは可能ですか?

4

1 に答える 1

49

試行錯誤の末、満足のいく方法で問題を解決することができました。次のように、Layer-List ドローアブルを単純に実装しました。

<?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は、2 つのボタン サイド イメージの幅 (ピクセル単位) です。

このドローアブルを使用するには、他のドローアブルと同じように呼び出すだけです。

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

これはまさに期待どおりに機能し、中央が通常どおり拡大されて希望の幅に収まり、3 つの画像すべてが希望の高さに収まるように拡大されます。他の人がこれから恩恵を受けることを願っています!

于 2011-10-03T17:54:20.053 に答える