我正在尝试<shape>
用于显示按钮的按下状态。为此,我在正常状态下使用透明颜色的笔触,在按下状态下使用颜色:
按钮.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/button_normal"/>
</selector>
button_pressed.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#0F0" />
<stroke android:width="@dimen/size_medium" android:color="#F00" />
<padding android:left="@dimen/size_medium" android:top="@dimen/size_medium" android:right="@dimen/size_medium"
android:bottom="@dimen/size_medium" />
</shape>
button_normal.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00F" />
<stroke android:width="@dimen/size_medium" android:color="#0000" />
</shape>
这是在我的测试布局中:
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/action_sign_in"
android:textStyle="bold"
android:layout_marginTop="16dp"
android:background="@drawable/button"
android:textColor="#ffffff"
android:textAlignment="viewStart"
android:textAppearance="@null"
android:textSize="15sp"
android:enabled="true"/>
ps 额外的问题:为什么填充用于两种状态,即使它只设置在按下的状态?