如何使用复合可绘制对象而不是包含 ImageView 和 TextView 的 LinearLayout
针对我的代码运行新的 Lint 工具。它提出了很多好的建议,但这个我无法理解。
此标签及其子标签可以替换为一个标签和一个复合可绘制标签
问题:检查当前节点是否可以使用复合可绘制对象替换为 TextView。
包含 ImageView 和 TextView 的 LinearLayout 可以作为复合可绘制对象更有效地处理
,这是我的布局
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true">
<ImageView
android:id="@+id/upImage"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:scaleType="centerInside"
android:src="@drawable/up_count_big">
</ImageView>
<TextView
android:id="@+id/LikeCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginBottom="1dp"
android:textColor="@color/gray"
android:textSize="16sp"
android:layout_gravity="center_vertical">
</TextView>
</LinearLayout>
有人可以提供一个具体示例来说明如何在这种情况下制作复合可绘制对象吗?
Ran the new Lint tool against my code. It came up with a lot of good suggestions, but this one I cannot understand.
This tag and its children can be replaced by one and a compound drawable
Issue: Checks whether the current node can be replaced by a TextView using compound drawables.
A LinearLayout which contains an ImageView and a TextView can be more efficiently handled as a compound drawable
And here is my layout
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true">
<ImageView
android:id="@+id/upImage"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:scaleType="centerInside"
android:src="@drawable/up_count_big">
</ImageView>
<TextView
android:id="@+id/LikeCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginBottom="1dp"
android:textColor="@color/gray"
android:textSize="16sp"
android:layout_gravity="center_vertical">
</TextView>
</LinearLayout>
Can someone provide a concrete example of how to make a compound drawable in this case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
TextView
附带 4 个复合绘图,左、上、右和下各一个。就您而言,您根本不需要
LinearLayout
和ImageView
。只需将android:drawableLeft="@drawable/up_count_big"
添加到您的TextView
即可。请参阅 TextView#setCompoundDrawablesWithIntrinsicBounds< /a> 了解更多信息。
TextView
comes with 4 compound drawables, one for each of left, top, right and bottom.In your case, you do not need the
LinearLayout
andImageView
at all. Just addandroid:drawableLeft="@drawable/up_count_big"
to yourTextView
.See TextView#setCompoundDrawablesWithIntrinsicBounds for more info.
如果由于某种原因你需要通过代码添加,你可以使用这个:
其中左、上、右下是可绘制对象
if for some reason you need to add via code, you can use this:
where left, top, right bottom are Drawables
除此之外,定义宽度和宽度似乎很重要。根据这篇文章,可绘制对象的高度:
(他的代码作品)
To add to this - it seems important to define the width & height of the drawable as per this post:
(his code works)
您可以使用一般的复合可绘制实现,但如果您需要定义可绘制的大小,请使用此库:
https://github.com/a-tolstykh/textview-rich-drawable
这是一个使用的小示例:
You can use general compound drawable implementation, but if you need to define a size of drawable use this library:
https://github.com/a-tolstykh/textview-rich-drawable
Here is a small example of usage: