针对我的代码运行新的Lint工具。它提出了许多好的建议,但这个我无法理解。
此标签及其子代可以替换为一个复合可绘制
问题:检查当前节点是否可以使用复合drawables替换为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>
在这种情况下,有人可以提供一个如何制作复合可绘制的具体示例吗?
答案 0 :(得分:247)
TextView
附带4个复合绘图,左,上,右,下各一个。
在您的情况下,您根本不需要LinearLayout
和ImageView
。只需将android:drawableLeft="@drawable/up_count_big"
添加到TextView
。
答案 1 :(得分:19)
如果由于某种原因你需要通过代码添加,你可以使用:
mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
左侧,上方,右下方是Drawables
答案 2 :(得分:3)
除此之外 - 定义宽度和宽度似乎很重要。根据这篇文章的可绘制高度:
(他的代码有效)
答案 3 :(得分:1)
您可以使用常规复合drawable实现,但如果您需要定义drawable的大小,请使用此库:
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" />