Android 在按钮内设置可拉拔位置
我在文本的左边有一个按钮和一个可绘制的,但是我希望可绘制的更接近文本。所以我需要移动牵引装置 我已经定义了android:drawableLeft,但是按钮的内容没有居中 这是我的密码:Android 在按钮内设置可拉拔位置,android,android-button,android-drawable,Android,Android Button,Android Drawable,我在文本的左边有一个按钮和一个可绘制的,但是我希望可绘制的更接近文本。所以我需要移动牵引装置 我已经定义了android:drawableLeft,但是按钮的内容没有居中 这是我的密码: <Button android:id="@+id/addsubject" android:layout_width="250dp" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic
<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" />
下面是它现在的样子:
下面是我希望的情况:
谢谢大家! 试试这个
<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" />
按钮左边框和图标右边框之间的填充由
android:paddingLeft
属性控制。图标和文本之间的填充由android:drawablePadding
属性定义
将这两个属性添加到按钮并设置您满意的值
<Button
...
android:paddingLeft="24dp"
android:drawablePadding="8dp"
/>
通过添加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>
我只需将这些属性放到按钮上,就得到了这个结果
<Button
...
android:paddingLeft="60dp"
android:drawablePadding="-50dp"
android:gravity="center"
android:drawableLeft="@drawable/your_button_icon"
/>
您可以使用自己的值调整以获得所需的结果
干杯:-)我只是简单地使用paddingLeft和paddingRight来完成这项工作。它的作品<代码> ... android:paddingLeft=“25dp”
android:paddingRight=“25dp”/>在阅读了一段时间并使用了大量XML组合后,您还可以通过编程方式对可绘图/图标进行充气,但仍然不起作用 您可能希望在库下方分叉,以适合您的用例,例如,以编程方式自定义视图、位置等,请参见以下参考:
注意:版权所有,关于作者,对于Materialbutton,您必须使用图标属性,并且您还可以使用图标更改其色调,例如:
<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" />
使用
材料按钮中的应用程序:iconGravity=“textStart”
属性
<com.google.android.material.button.MaterialButton
app:icon="@drawable/ic_add_24px"
app:iconGravity="textStart"
../>
尝试将android:gravity=“center”
添加到您的xml中?请看。这就是我想要的!诀窍是使用drawableLeft和drawableRight并调整它们以适应。非常感谢。它正在工作,但根据设备大小,它不是灵活的。谢谢,它可以工作。但是如果你有android:padding,请删除它。在另一种情况下,图标将位于左侧,文本将居中。结果还取决于按钮的宽度。解决方案不好,因为这样按钮在不同的屏幕大小上会有不同的外观。@definera您能为该视图(按钮)提出一个更好的解决方案,它可以适应不同的屏幕大小吗?@ImtiazAbir也许可以将SpannableString与ImageSpan一起使用。我还没有亲自尝试过,所以我不能给出一个具体的例子。
<com.google.android.material.button.MaterialButton
app:icon="@drawable/ic_add_24px"
app:iconGravity="textStart"
app:iconPadding="0dp"/>