我尝试为按钮设置不同的背景颜色。但与普通和自定义按钮相比,高度会有所不同。
布局文件:
<Button
android:id="@+id/btn_normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="Normal" />
<Button
android:id="@+id/btn_custon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/custom_background"
android:layout_toEndOf="@id/btn_normal"
android:text="Custom"
android:textColor="#FFFFFF" />
custom_bbackground.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape >
<corners android:radius="6dp" />
<solid android:color="#026267"/>
</shape>
</item>
<item android:state_focused="true">
<shape>
<corners android:radius="6dp" />
<solid android:color="#026267"/>
</shape>
</item>
<item >
<shape >
<corners android:radius="6dp" />
<solid android:color="#026267" />
</shape>
</item>
</selector>
答案 0 :(得分:3)
使用AppCompat
库的新版本v23.0.0,现在可以为Lollipop和Pre-Lollipop设备创建Material Design按钮。
如果您只想定义所有按钮的颜色,可以设置一个名为colorButtonNormal
的特殊主题属性:
将此行添加到styles.xml
<item name="colorButtonNormal">@color/yourColor</item>
有关详细信息,请参阅this
修改强>
为按钮制作自定义主题可以解决问题。
<style name="CustomTheme" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/yourcolor</item>
</style>
并且正在使用中。
<Button android:theme="@style/CustomTheme"/>
注意: 请确保您使用Widget.AppCompat.Button.Colored
作为父级。
快乐编码..
答案 1 :(得分:0)
尝试为两个按钮和主要布局分配 android:layout_height =“match_parent”,在这个布局中,您将两个按钮的高度设置为包装内容,如 android:layout_height =“wrap_content “强>
答案 2 :(得分:-1)
默认按钮背景drawable有某种边距。这些边距只是图像两侧的透明像素。当您为按钮设置背景颜色时,这些边距会消失,因为按钮的整个矩形都填充了颜色。please see this link