使用Drawable excat和performant布局文本

时间:2014-01-30 07:48:20

标签: android layout textview drawable

如何使用与此完全相同的图标布局文本:

enter image description here

我用这个布局做到了:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="64dp"
    android:layout_height="64dp">
    <ImageView
        android:id="@+id/imgIcon"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="24dp"
        android:duplicateParentState="true"
        android:src="@drawable/delete_icon" />
    <TextView
        android:id="@+id/txtLabel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal"
        android:duplicateParentState="true"
        android:text="xxx" />
</RelativeLayout>

但是Android guide说:使用复合drawables - 包含ImageView和TextView的LinearLayout可以作为复合drawable更有效地处理。 我试过,但我找不到我需要的布局参数(图像的大小,图像和文本的不同填充)。

<TextView
    android:id="@+id/txtLabel"
    android:layout_width="64dp"
    android:layout_height="64dp"
    android:layout_alignParentBottom="true"
    android:gravity="center_horizontal|bottom"
    android:duplicateParentState="true"
    android:drawableTop="@drawable/delete_icon"
    android:paddingTop="8dp"
    android:drawablePadding="8dp"
    android:text="xxx" />

这是结果(左边是RelativeLayout,右边是复合drawable):

enter image description here

如果有更好的标准组件提供必要的参数,那也是可以接受的。

1 个答案:

答案 0 :(得分:0)

我也尝试过这样做 我得到了这个结果(请注意图像有一个“光学方块”,小于物理图像尺寸):

enter image description here

我正在使用我最喜欢的方法:复合绘图。

可是:

1 - 我准备了一些不同分辨率的图像,因此32 * 32被称为标准mdpi(160dpi)分辨率,并且在不同分辨率下缩放(xxhdpi为96 * 96像素宽和高) - 2 - 我将这些图像放在相应的可绘制文件夹中(drawable-ldpi到drawable-xxhdpi)。 3 - 我稍微纠正了布局,以便匹配。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:layout_margin="0dp"
    android:padding="0dp"
    >
    <TextView
        android:id="@+id/txtLabel"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal|bottom"
        android:padding="8dp"
        android:drawableTop="@drawable/delete_icon"
        android:drawablePadding="4dp"
        android:text="XXX"
        android:textSize="12sp"
    />
</RelativeLayout>

我使用全部大写字母来更好地查看文本和可绘制文本之间的间距 它符合您的需求吗?