当前位置:  开发笔记 > 前端 > 正文

android:drawableLeft边距和/或填充

如何解决《android:drawableLeft边距和/或填充》经验,为你挑选了12个好方法。

是否可以为我们添加的图像设置边距或填充android:drawableLeft



1> Jordan..:

如上所述的cephus android:drawablePadding只会在按钮足够小的情况下强制填充文本和drawable之间的填充.

布置较大的按钮时,您可以android:drawablePadding与文本一起使用android:paddingLeftandroid:paddingRight强制文本,并向内朝向按钮的中心绘制.通过分别调整左右填充,您可以对布局进行非常详细的调整.

这是一个示例按钮,使用填充将文本和图标推到一起比默认情况下更接近:


android:paddingLeft ="30dip"android:paddingRight ="26dip"是关键!
这与问题无关,但android:gravity ="center"会保持文本与drawable的中心对齐!

2> Cheryl Simon..:

TextView有一个android:drawablePadding属性应该可以解决这个问题:

机器人:drawablePadding

drawables和文本之间的填充.

必须是维值,这是一个附加单位的浮点数,例如"14.5sp".可用的单位是:像素(像素),DP(密度无关的像素),SP(基于优选的字体大小缩放的像素),in(英寸),毫米(mm)表示.

这也可以是对资源的引用(其形式为"@〔包:]类型:名称为")("?[包:] [类型:]名称"的形式)或主题属性包含该类型的值.

这对应于全局属性资源符号drawablePadding.



3> 小智..:

android:drawablePadding如果按钮足够小以将2压缩在一起,则仅在文本和drawable之间创建填充间隙.如果您的按钮宽度超过组合宽度(对于drawableLeft/drawableRight)或高度(对于drawableTop/drawableBottom),则drawablePadding不会执行任何操作.

我现在也在努力解决这个问题.我的按钮非常宽,图标悬挂在按钮的左边缘,文本居中于中间.我现在解决这个问题的唯一方法就是通过在photoshop的画布左边缘添加空白像素来在可绘制的边缘烘烤.不理想,也没有真正推荐.但这就是我现在的止损解决方案,没有重建TextView/Button.



4> Parinda Raja..:

是.使用drawablePadding如下,




5> The Finest A..:

制作drawable resources.xml



    
        
    
    
        
    


@ The Finest Artist我在drawable中使用了插图,它适用于较新版本的设备.我的意思是它不在SDK 16,17中工作但在SDK 23中工作.有什么想法吗?
来自API 1的http://developer.android.com/reference/android/graphics/drawable/InsetDrawable.html

6> Bhargav Than..:

android:drawablePadding是最简单的方法来为可绘制的图标添加填充但你不能给出特定的一面填充像paddingRightpaddingLeft可绘制的图标.要实现这一点,你必须挖掘它.如果你申请paddingLeftpaddingRightEdittext然后它会放置填充到整个Edittext一起绘制图标.



7> 小智..:

为edittext定义一个形状,并为它提供一个填充示例



    
    
    

    

在这种形状中定义的填充将有助于为drawableleft或right赋予填充----------------------在EditView上应用此形状

 

使用该定义的形状作为背景将为EditText提供一些样式加上drawableLeft的边距.



8> Daniel Ochoa..:

我也会把答案也弄响。如果要以编程方式执行此操作,则可以执行以下操作。

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中。



9> 小智..:

注意:layout_width需要是wrap_content并使用paddingLeft paddingRight drawablePadding来控制间隙.如果你指定layout_width值会有图标和文本之间的差距,我想一旦给layout_width一个指定值,padding就会测量.



10> Alexey Zakha..:

而不是与内部一起Button使用.在儿童用品和喜欢和使用.LinearLayoutImageViewTextViewImageViewTextViewandroid:duplicateParentState="true"



11> 小智..:

android:drawablePadding是为可绘制图标提供填充的最简单方法,但是您不能给特定的一侧填充(例如可绘制图标的paddingRight或paddingLeft)。要实现这一点,您必须深入研究它。并且,如果将paddingLeft或paddingRight应用于Edittext,则它将填充和整个可绘制图标一起填充到整个Edittext。




12> RayChongJH..:

您应该考虑使用图层列表

像这样创建一个可绘制文件,将其命名为ic_calendar.xml




    
        
    


    


在布局文件下,


推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有