阿超
>
android中UseCompoundDrawables警告
促使一个人值得信任的唯一方式就是信任他。——史汀生
在Android
开发中,如果你看到 UseCompoundDrawables
这类的提示或警告,它通常来自于Android Lint
工具,这是一种代码质量检测工具,用于指出可以优化的代码实践。UseCompoundDrawables
警告提示你可以使用 TextView
的 compound drawables
功能,而不是在布局中单独使用一个 ImageView
和 TextView
。
TextView
提供了一种方式来直接在文本周围放置图标(上、下、左、右),这可以通过在TextView中使用 android:drawableLeft
、android:drawableRight
、android:drawableTop
或 android:drawableBottom
属性来实现。使用这种方式比起分别放置 ImageView
和 TextView
更有效率,因为它减少了布局层次结构的复杂性,并且可以提升渲染性能。
假设你有一个 TextView
和一个图标显示性别,而你当前是这样布置的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_4" android:gravity="center_vertical" android:orientation="horizontal">
<TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:lines="1" android:maxWidth="@dimen/dp_200" android:text="foo" android:textColor="@color/ff333333" android:textSize="15sp" android:textStyle="bold" />
<ImageView android:id="@+id/gender" android:layout_width="@dimen/dp_17" android:layout_height="@dimen/dp_17" android:layout_marginStart="@dimen/dp_5" android:src="@mipmap/gender_boy" />
</LinearLayout>
|
可以优化为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_4" android:ellipsize="end" android:lines="1" android:maxWidth="@dimen/dp_200" android:drawableRight="@mipmap/gender_boy" android:drawablePadding="@dimen/dp_5" android:text="foo" android:textColor="@color/ff333333" android:textSize="15sp" android:textStyle="bold" android:gravity="center_vertical" />
|
在这个优化后的例子中,你使用了 android:drawableRight
来放置图标,并用 android:drawablePadding
来设置图标与文本之间的间距。这样做简化了布局并可能提高了性能。
总结
如果你的项目中出现 UseCompoundDrawables
警告,考虑调整你的布局以使用 TextView
的 compound drawables
功能,这通常是一个更优的布局实践。