例如,要创建一个按钮,其button_normal
状态显示一些不同的样式,button_pressed
状态显示一些不同的样式,我们创建三个文件:
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
and button_pressed.xml
。好的,这很正常。
实际考虑:
现在的问题是,这是否可以在同一文件中添加源button_normal.xml
和button_pressed.xml
内部button.xml
并将这两个形状(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>
问题的总结是,这是否可以在一个文件中创建多个形状xml
并将它们在同一个文件中指向其他东西(如果需要) - 例如参见上面的来源?所以在这种情况下,我们不会为每个形状创建额外的文件。
提前致谢!!!