如何使用复合可绘制对象而不是包含 ImageView 和 TextView 的 LinearLayout

发布于 2024-12-18 19:20:17 字数 1072 浏览 0 评论 0原文

针对我的代码运行新的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

因为看清所以看轻 2024-12-25 19:20:17

TextView 附带 4 个复合绘图,左、上、右和下各一个。

就您而言,您根本不需要 LinearLayoutImageView 。只需将 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 and ImageView at all. Just add android:drawableLeft="@drawable/up_count_big" to your TextView.

See TextView#setCompoundDrawablesWithIntrinsicBounds for more info.

且行且努力 2024-12-25 19:20:17

如果由于某种原因你需要通过代码添加,你可以使用这个:

mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);

其中左、上、右下是可绘制对象

if for some reason you need to add via code, you can use this:

mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);

where left, top, right bottom are Drawables

情释 2024-12-25 19:20:17

除此之外,定义宽度和宽度似乎很重要。根据这篇文章,可绘制对象的高度:

(他的代码作品)

To add to this - it seems important to define the width & height of the drawable as per this post:

(his code works)

总以为 2024-12-25 19:20:17

您可以使用一般的复合可绘制实现,但如果您需要定义可绘制的大小,请使用此库:

https://github.com/a-tolstykh/textview-rich-drawable

这是一个使用的小示例:

<com.tolstykh.textviewrichdrawable.TextViewRichDrawable
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text"
        app:compoundDrawableHeight="24dp"
        app:compoundDrawableWidth="24dp" />

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:

<com.tolstykh.textviewrichdrawable.TextViewRichDrawable
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text"
        app:compoundDrawableHeight="24dp"
        app:compoundDrawableWidth="24dp" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文