按钮大小看起来不同

时间:2016-01-20 16:39:53

标签: java android button

我想在另一个下面放置一个button。但是,在为提交button添加红色后,为什么button的大小看起来有所不同?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="2dp"
        android:orientation="horizontal"
        android:weightSum="3" >

        <Button
            android:id="@+id/addClaims1"
            android:layout_width="334dp"
            android:layout_height="61dp"
            android:drawableRight="@mipmap/claims"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="10dp"
            android:text="add claims" />

    </LinearLayout>

    <Button
        android:id="@+id/submit"
        android:background="@color/indian_red"
        android:layout_width="334dp"
        android:layout_marginLeft="15dp"
        android:layout_height="61dp"
        android:layout_below="@+id/linearLayout2"
        android:textColor="@color/white"
        android:drawableRight="@mipmap/done"
        android:text="submit" />

</RelativeLayout>

this one

之间,有没有办法让图标显示在文本附近?

4 个答案:

答案 0 :(得分:3)

您必须为其指定样式,而不是设置按钮的背景颜色。确保两个drawable的分辨率相同,以获得类似大小的按钮。

按钮的Xml代码:

<Button
    android:id="@+id/button_custom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Custom Button"
    android:drawableRight="@mipmap/done"
    android:theme="@style/ButtonTheme" />

创建这种风格:

<style name="ButtonTheme" parent="ThemeOverlay.AppCompat.Light">
    <item name="colorButtonNormal">@color/indian_red</item>
    <item name="android:textColor">@color/white</item>
</style>

答案 1 :(得分:2)

这是因为默认情况下原始按钮使用的边框附近有一个透明空间的背景图像。您还可以注意到角落是圆角的。

实际上按钮本身的大小相同。

在您的情况下,您应该为两个图像设置背景。您也可以为此创建图像。

您还可以注意到您的&#34; drawableRight&#34;在第一个按钮上有边距,在第二个按钮上没有它们。这是一种被称为&#34; Nine-path drawable&#34;在Android中。

答案 2 :(得分:1)

删除

android:layout_marginLeft="2dp"
来自LinearLayout的

或者如果需要,将其添加到第二个按钮

答案 3 :(得分:1)

问题出在android:layout_marginLeft="2dp"android:background="@color/indian_red"

<强>解决方案:

给@Kartik Sharma所说的那些按钮style,然后这就是改变和设置之后的样子:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:orientation="horizontal"
        android:weightSum="3">

        <Button
            android:id="@+id/addClaims1"
            android:layout_width="334dp"
            android:layout_height="61dp"
            android:layout_marginStart="15dp"
            android:layout_marginTop="10dp"
            android:text="add claims" />

    </LinearLayout>

    <Button
        android:id="@+id/submit"
        android:layout_width="334dp"
        android:layout_height="61dp"
        android:layout_below="@+id/linearLayout2"
        android:layout_marginStart="15dp"
        android:text="submit"
        android:textColor="@color/white" />

</RelativeLayout>
  

有没有办法让图标显示在文本附近?

是的。检查一下:

<Button
        android:id="@+id/btncat"
        android:layout_width="300dp"
        android:layout_height="55dp"
        android:layout_below="@+id/slider"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        android:drawableStart="@drawable/ic_category"
        android:gravity="center"
        android:paddingEnd="40dp"
        android:paddingStart="20sp"
        android:text="@string/category"
        android:textColor="#FFFFFF" />

结果:

enter image description here

玩这两个:

android:paddingEnd="40dp"
android:paddingStart="20sp"