Android中如何为按钮内的SVG图标设置顶部边距?
嘿,作为Android新手碰到这种小问题太正常啦!我来帮你搞定这个SVG图标顶部边距的问题~
你之前尝试用margin属性没效果,是因为margin是用来控制Button和其他View之间的间距,而你设置的drawableTop图标是Button内部的元素,margin根本管不到它哦!下面给你两种实用的解决方案:
方案一:用Inset Drawable(不改变Button整体大小)
这种方法是给你的SVG图标单独加顶部内边距,不会影响Button的点击区域大小:
- 在
res/drawable目录下新建一个XML文件,比如ic_search_inset.xml - 写入以下代码,把你的SVG图标包进去,设置想要的顶部边距:
<inset xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/ic_search" android:insetTop="8dp" /> <!-- 这里的8dp可以改成你需要的数值 -->
- 回到你的Button代码里,把
android:drawableTop改成这个新的drawable:
android:drawableTop="@drawable/ic_search_inset"
方案二:给Button设置内部padding(简单直接,但会增加Button高度)
如果不介意Button的整体高度变高,直接给Button加paddingTop属性就行:
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:drawableTop="@drawable/ic_search" android:textColor="#FFF" android:background="#3bbdfa" android:paddingTop="8dp" /> <!-- 新增的顶部内边距 -->
这样调整后,你的SVG图标就能往下移,达到顶部边距的效果啦!
内容的提问来源于stack exchange,提问作者user9401159
相关产品推荐
相关产品推荐

