我在文本的左边有一个按钮和一个可绘制的,但我希望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" />
以下是现在的样子:
以下是我喜欢的方式:
谢谢!
答案 0 :(得分:9)
试试这个
<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" />
答案 1 :(得分:6)
使用app:iconGravity="textStart"
MaterialButton
属性
<com.google.android.material.button.MaterialButton
app:icon="@drawable/ic_add_24px"
app:iconGravity="textStart"
../>
如果要减少图标和文本之间的填充,只需使用 app:iconPadding
属性:
<com.google.android.material.button.MaterialButton
app:icon="@drawable/ic_add_24px"
app:iconGravity="textStart"
app:iconPadding="0dp"/>
答案 2 :(得分:2)
您可以通过添加OnClickListener并根据需要自定义使用LinearLayout作为您的按钮。
<LinearLayout
android:layout_width="160dip"
android:layout_height="60dip"
android:orientation="horizontal"
android:background="@drawable/custombutton1">
<ImageView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/ic_action_add"
android:layout_gravity="center"
android:layout_weight="1"
android:scaleType="center">
</ImageView>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/addsubject"
android:layout_gravity="center"
android:layout_weight="1"/>
</LinearLayout>
答案 3 :(得分:1)
按钮左边框和图标右边框之间的填充由android:paddingLeft
属性控制。图标和文本之间的填充由android:drawablePadding
属性定义。
将这两个属性添加到您的按钮并设置您满意的值。
<Button
...
android:paddingLeft="24dp"
android:drawablePadding="8dp"
/>
答案 4 :(得分:1)
我通过简单地将这些属性专门添加到按钮
来获得此结果<Button
...
android:paddingLeft="60dp"
android:drawablePadding="-50dp"
android:gravity="center"
android:drawableLeft="@drawable/your_button_icon"
/>
您可以使用自己的值收听所需的结果。
干杯: - )
答案 5 :(得分:1)
我只是使用paddingLeft和paddingRight做到了这一点。它的作品!
...
android:paddingLeft="25dp"
android:paddingRight="25dp"
/>
答案 6 :(得分:0)
在阅读了一会儿并使用大量XML组合后,您还希望以编程方式使drawable / icon膨胀,还有其他可能性,但仍然不可行,
您可能希望将其分叉到库下面,以适合您的用例,例如以编程方式自定义视图,位置等,请参见以下参考资料:
P.S:版权所有并尊重作者
答案 7 :(得分:0)
对于Materialbutton,您必须使用 icon 属性,还可以使用 iconTint 更改其色调,例如以下示例:
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:icon="@drawable/ic_cancel"
app:iconTint="@color/black"
android:text="text" />