是否可以为我们添加的图像设置边距或填充android:drawableLeft
?
如上所述的cephus android:drawablePadding
只会在按钮足够小的情况下强制填充文本和drawable之间的填充.
布置较大的按钮时,您可以android:drawablePadding
与文本一起使用android:paddingLeft
并android:paddingRight
强制文本,并向内朝向按钮的中心绘制.通过分别调整左右填充,您可以对布局进行非常详细的调整.
这是一个示例按钮,使用填充将文本和图标推到一起比默认情况下更接近:
TextView有一个android:drawablePadding属性应该可以解决这个问题:
机器人:drawablePadding
drawables和文本之间的填充.
必须是维值,这是一个附加单位的浮点数,例如"14.5sp".可用的单位是:像素(像素),DP(密度无关的像素),SP(基于优选的字体大小缩放的像素),in(英寸),毫米(mm)表示.
这也可以是对资源的引用(其形式为"@〔包:]类型:名称为")("?[包:] [类型:]名称"的形式)或主题属性包含该类型的值.
这对应于全局属性资源符号drawablePadding.
android:drawablePadding
如果按钮足够小以将2压缩在一起,则仅在文本和drawable之间创建填充间隙.如果您的按钮宽度超过组合宽度(对于drawableLeft/drawableRight)或高度(对于drawableTop/drawableBottom),则drawablePadding不会执行任何操作.
我现在也在努力解决这个问题.我的按钮非常宽,图标悬挂在按钮的左边缘,文本居中于中间.我现在解决这个问题的唯一方法就是通过在photoshop的画布左边缘添加空白像素来在可绘制的边缘烘烤.不理想,也没有真正推荐.但这就是我现在的止损解决方案,没有重建TextView/Button.
是.使用drawablePadding如下,
制作drawable resources.xml
android:drawablePadding
是最简单的方法来为可绘制的图标添加填充但你不能给出特定的一面填充像paddingRight
或paddingLeft
可绘制的图标.要实现这一点,你必须挖掘它.如果你申请paddingLeft
或paddingRight
于Edittext
然后它会放置填充到整个Edittext
一起绘制图标.
为edittext定义一个形状,并为它提供一个填充示例
在这种形状中定义的填充将有助于为drawableleft或right赋予填充----------------------在EditView上应用此形状
使用该定义的形状作为背景将为EditText提供一些样式加上drawableLeft的边距.
我也会把答案也弄响。如果要以编程方式执行此操作,则可以执行以下操作。
final Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.somedrawable); final boolean isLTR = ViewCompat.LAYOUT_DIRECTION_LTR == ViewCompat.getLayoutDirection(this); final int iconInsetPadding = getResources().getDimensionPixelSize(R.dimen.icon_padding); final Drawable insetDrawable = new InsetDrawable(drawable, isLTR ? 0 : iconInsetPadding, 0, isLTR ? iconInsetPadding : 0, 0);
这会将填充添加到可绘制对象的末尾,其中末尾将表示左/右,具体取决于电话是处于LTR还是RTL中。
注意:layout_width需要是wrap_content并使用paddingLeft paddingRight drawablePadding来控制间隙.如果你指定layout_width值会有图标和文本之间的差距,我想一旦给layout_width一个指定值,padding就会测量.
而不是与内部一起Button
使用.在儿童用品和喜欢和使用.LinearLayout
ImageView
TextView
ImageView
TextView
android:duplicateParentState="true"
android:drawablePadding是为可绘制图标提供填充的最简单方法,但是您不能给特定的一侧填充(例如可绘制图标的paddingRight或paddingLeft)。要实现这一点,您必须深入研究它。并且,如果将paddingLeft或paddingRight应用于Edittext,则它将填充和整个可绘制图标一起填充到整个Edittext。
您应该考虑使用图层列表
像这样创建一个可绘制文件,将其命名为ic_calendar.xml
在布局文件下,