1

たとえばbutton_normal、状態が異なるスタイルを示し、状態が異なるスタイルを示すボタンを作成するbutton_pressedには、3 つのファイルを作成します。

button_normal.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#0084FF" />
</shape>

button_pressed.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#FF19F4" />
</shape>

最後に、button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/button_pressed" />
    <item android:drawable="@drawable/button_normal" />
</selector>

ご覧のとおり、ファイル内でとbutton.xmlを指しています。わかりました、それは正常です。button_normal.xmlbutton_pressed.xml

実際の考慮事項:

問題は、 のソースbutton_normal.xmlとのbutton_pressed.xml内部を追加しbutton.xml、これらの 2 つの形状 (button_normalbutton_pressed) を同じファイル内で次のように指定できるかどうかですbutton.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/button_pressed" />
    <item android:drawable="@drawable/button_normal" />
</selector>

<shape android:shape="rectangle">
    <solid android:color="#0084FF" />
    <corners android:radius="3dp" />
</shape>

<shape android:shape="rectangle">
    <solid android:color="#FF19F4" />
</shape>

質問の要約は、1 つのファイル内に複数の形状を作成xmlし、同じファイル内でそれらを (必要に応じて) 別のものにポイントすることが可能であるということです。たとえば、上記のソースを参照してください。その場合、形状ごとに余分なファイルを作成しません。

前もって感謝します!!!

4

1 に答える 1