在按钮内设置可绘制位置

Isa*_*ías 7 android android-button android-drawable

我在文本的左边有一个按钮和一个drawable,但我希望drawable更接近文本.所以我需要移动drawable.

我已经定义了android:drawableLeft但是按钮的内容没有居中.

这是我的代码:

<Button
    android:id="@+id/addsubject"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/ic_action_add"
    android:layout_centerHorizontal="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="20dp"
    android:text="@string/addsubject"
    android:textColor="@color/white"
    android:background="@drawable/custombutton1" />
Run Code Online (Sandbox Code Playgroud)

以下是它现在的样子:

在此输入图像描述

以下是我喜欢的方式:

在此输入图像描述

谢谢!

Gab*_*tti 10

app:iconGravity="textStart"属性中使用MaterialButton

    <com.google.android.material.button.MaterialButton
        app:icon="@drawable/ic_add_24px"
        app:iconGravity="textStart"
        ../>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如果要减少图标和文本之间的填充,只需使用该app:iconPadding属性:

    <com.google.android.material.button.MaterialButton
        app:icon="@drawable/ic_add_24px"
        app:iconGravity="textStart"
        app:iconPadding="0dp"/>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


小智 8

试试这个

 <Button
    android:id="@+id/addsubject"
    android:layout_width="160dip"
    android:layout_height="60dip"
    android:layout_gravity="center"
    android:drawableLeft="@drawable/ic_action_add"
    android:drawablePadding="2dip"
    android:gravity="center"
    android:paddingLeft="30dip"
    android:paddingRight="26dip"
    android:singleLine="true"
    android:text="@string/addsubject"
    android:textSize="13dip" />
Run Code Online (Sandbox Code Playgroud)


Imt*_*bir 6

我通过简单地将这些属性专门放置到按钮上得到了这个结果

<Button
    ...
    android:paddingLeft="60dp"
    android:drawablePadding="-50dp"
    android:gravity="center"
    android:drawableLeft="@drawable/your_button_icon"
    /> 
Run Code Online (Sandbox Code Playgroud)

您可以调整自己的价值观以获得所需的结果。

干杯:-)