效果如下 (第二个按钮)
所有的按钮均在一个带有android:stretchColumns="*"
的TableLayout
的多个TableRow
下。下帖代码。
main.xml
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/gray_bg"
android:text="@string/calculator_multiply"
/>
gray_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="5dp"/>
<item android:drawable="@drawable/gray_default" android:state_pressed="false"></item>
<item android:drawable="@drawable/gray_active" android:state_pressed="true"></item>
</selector>
gray_default.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="5dp"/>
<solid android:color="@color/gray_default"/>
</shape>
gray_active.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="5dp"/>
<solid android:color="@color/gray_active"/>
</shape>
这跟你应用设置的 Theme 有关,如果是 android:Theme 或者 android:Theme.Black 就会出现这种情况
解决办法1: 将 Theme 改为 android:Theme.Holo 或者 android:Theme.Holo.Light
解决办法2: 给 Button 添加 android:minHeight="48dp" 属性