可绘制的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之间的间距。
它是否符合您的需求?