Android 中普通按钮和自定义背景按钮的高度不匹配
Height mismatch for Normal Button and Custom Background Button in Android
我尝试为按钮设置不同的背景颜色。但与普通按钮和自定义按钮相比,高度会有所不同。
布局文件:
<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>
随着 AppCompat
库的新版本 v23.0.0,现在可以为 Lollipop 和 Pre-Lollipop 设备创建 Material 设计按钮。
如果您只想定义所有按钮的颜色,您可以设置一个名为 colorButtonNormal
的特殊主题 属性:
将此行添加到 styles.xml
下的 parent 主题
<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
用作 parent。
快乐编码..
尝试为两个按钮和放置两个按钮组的主布局分配 android:layout_height="match_parent"它的高度像 android:layout_height="wrap_content"
默认按钮背景可绘制对象具有某种边距。这些边距只是图像两侧的透明像素。当您为按钮设置背景颜色时,这些边距会消失,因为按钮的整个矩形都被颜色填充了。please see this link
我尝试为按钮设置不同的背景颜色。但与普通按钮和自定义按钮相比,高度会有所不同。
布局文件:
<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>
随着 AppCompat
库的新版本 v23.0.0,现在可以为 Lollipop 和 Pre-Lollipop 设备创建 Material 设计按钮。
如果您只想定义所有按钮的颜色,您可以设置一个名为 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
用作 parent。
快乐编码..
尝试为两个按钮和放置两个按钮组的主布局分配 android:layout_height="match_parent"它的高度像 android:layout_height="wrap_content"
默认按钮背景可绘制对象具有某种边距。这些边距只是图像两侧的透明像素。当您为按钮设置背景颜色时,这些边距会消失,因为按钮的整个矩形都被颜色填充了。please see this link