可绘制的excat和performant布局文本

我怎样才能用这样一个图标来布局文本:

我用这个布局做了它:

<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指南说:使用复合可绘制 - 包含ImageView和TextView的LinearLayout可以更有效地处理为复合可绘制。 我试过了,但是我找不到我需要的布局参数(图像大小,图像和文本的不同填充)。

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

但:

1 - 我以不同的分辨率准备了一些图像,以便32 * 32被称为标准mdpi(160dpi)分辨率,并以不同的分辨率缩放(xxhdpi是96 * 96像素宽和高) - 2 - 我将这些图像放入相应的可绘制文件夹(drawable-ldpi to 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>

我使用全部大写字母来更好地查看文本和drawable之间的间距。
它是否符合您的需求?

链接地址: http://www.djcxy.com/p/84715.html

上一篇: Layout Text with Drawable excat and performant

下一篇: Problems buidling grid like ui with RelativeLayout