たとえば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.xml
button_pressed.xml
実際の考慮事項:
問題は、 のソースbutton_normal.xml
とのbutton_pressed.xml
内部を追加しbutton.xml
、これらの 2 つの形状 (button_normal
とbutton_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
し、同じファイル内でそれらを (必要に応じて) 別のものにポイントすることが可能であるということです。たとえば、上記のソースを参照してください。その場合、形状ごとに余分なファイルを作成しません。
前もって感謝します!!!