Android:可拖左边距和/或填充?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (10)
  • 关注 (0)
  • 查看 (48)

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

提问于
用户回答回答于

你可以为按钮使用填充,也可以使用drawablePadding 进行填充

 <Button
    style="@style/botonesMenu"
    android:padding="15dp"
    android:drawablePadding="-15dp"
    android:text="@string/actualizarBD"
    android:textAlignment="gravity"
    android:gravity="center"
    android:layout_row="1"
    android:layout_column="0"
    android:drawableTop="@drawable/actualizar"
    android:id="@+id/btnActualizar"
    android:onClick="actualizarBD" />

你可以使用特定的填充(取决于放置可绘图的位置),例如android:paddingLeft=“10dp”或android:paddingBottom=“10dp”或android:paddingRight=“10dp”或android:paddingtop=“10dp”。

用户回答回答于

你可以用android:drawableLeft="@drawable/your_icon"将可绘制的图形设置在左侧。你可以使用android:paddingLeftandroid:paddingRight来设置左/右填充,请执行以下操作。

android:paddingRight="10dp"
android:paddingLeft="20dp"
android:drawableRight="@drawable/ic_app_manager"
用户回答回答于

不要使用Button,使用LinearLayout,它包含ImageView和TextView。在ImageView和TextView这样的子项目中,使用android:duplicateParentState="true".

用户回答回答于

是的。drawablePadding 如下,

<TextView
        android:id="@+id/tvHeader"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Settings and Contents"
        android:drawableLeft="@drawable/icon_success"
        android:drawablePadding="10dp" />
用户回答回答于

为编辑文本定义一个形状,例如,给它一个填充。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <padding
        android:left="5dp"
        android:right="5dp"
    />
    <solid android:color="#F6F6F6" />
    <stroke
        android:width="1px"
        android:color="#C3C3C3" />

    <corners
        android:bottomLeftRadius="1dp"
        android:bottomRightRadius="1dp"
        android:topLeftRadius="1dp"
        android:topRightRadius="1dp" />
</shape>

在这个形状中定义的边距将有助于给drawableleft或right 在EditView上应用这个形状。

 <EditText
            android:id="@+id/example"
            android:layout_width="fill_parent"
            android:layout_height="36dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="@drawable/shape2"
            android:drawableLeft="@drawable/icon1"
            android:drawablePadding="@dimen/txtDrwblPadding"
            android:ems="10"
         />

使用该定义的形状作为背景将为你的EditText提供一些样式和可绘制的左侧空白。

用户回答回答于

resources.xml 可以帮助你

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <inset android:drawable="@drawable/small_m" android:insetLeft="10dp" android:insetTop="10dp" />
    </item>
    <item>
        <inset android:drawable="@drawable/small_p" android:insetLeft="10dp" android:insetTop="10dp" />
    </item>
</selector>
用户回答回答于

android:drawablePadding是向可绘制图标提供填充的最简单方法,但不能给出特定的一侧填充,例如paddingRightpaddingLeft。如果你申请paddingLeftpaddingRightEdittext然后它会覆盖整个Edittext和可绘制的图标。

用户回答回答于

android:drawablePadding只有当按钮小到足以将2挤在一起时,才会在文本和可绘制之间创建一个填充间隙。如果你的按钮比组合宽度(可拖左/可拉右)或高度(对于DraableTop/DraableBottom)宽,则DraablePadd不会做任何反应。

我的按钮很宽,图标挂在按钮的左边边缘,文字在中间。我现在的解决办法是在画布的左边添加空白像素,然后用Photoshop在画布的左边边缘添加空白像素,这样就可以在画布上留下空白。不推荐这种方法。

用户回答回答于

TextView有一个android:drawablePadding属性:

android:drawablePadding

绘图和文本之间的填充,必须是一个维度值,它是一个浮点数,附加了一个单位,如“14.5sp”。可用的单位是:px(像素),dp(密度无关的像素),sp(根据首选字体大小缩放像素),单位(英寸),mm(毫米)。 这也可能是对资源的引用(形式为“@[package:]type:name“)或主题属性[package:][type:]name)包含此类型的值。 这对应于全局属性DraablePadding。

用户回答回答于

android:drawablePadding如果按钮足够小,只能在文本和可绘制之间强制填充。

当放置较大的按钮时,可以使用android:drawablePaddingandroid:paddingLeftandroid:paddingRight强制文本并向内拉向按钮的中心。通过分别调整左右填充,你可以对布局进行非常详细的调整。

下面是一个示例按钮,它使用填充使文本和图标更紧密,而不是默认情况下:

<Button android:text="@string/button_label" 
    android:id="@+id/buttonId"
    android:layout_width="160dip"
    android:layout_height="60dip"
    android:layout_gravity="center"
    android:textSize="13dip"
    android:drawableLeft="@drawable/button_icon"
    android:drawablePadding="2dip"
    android:paddingLeft="30dip"
    android:paddingRight="26dip"
    android:singleLine="true"
    android:gravity="center" />  

扫码关注云+社区