Запустил новый инструмент Lint для моего кода. В нем было много хороших предложений, но этого я не могу понять.
Этот тег и его дочерние элементы могут быть заменены на один и составной чертеж Проблема: проверяет, можно ли заменить текущий узел на TextView, используя составные элементы рисования. LinearLayout, который содержит ImageView и TextView, может быть более эффективно обработан как составной чертеж
Этот тег и его дочерние элементы могут быть заменены на один и составной чертеж
Проблема: проверяет, можно ли заменить текущий узел на TextView, используя составные элементы рисования.
LinearLayout, который содержит ImageView и TextView, может быть более эффективно обработан как составной чертеж
А вот мой макет
<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>
Может ли кто-нибудь привести конкретный пример того, как сделать составной элемент в этом случае пригодным для рисования?
TextView поставляется с 4 составными чертежами, по одному для каждого из левого, верхнего, правого и нижнего.
TextView
В вашем случае вам вообще не нужны LinearLayout и ImageView.Просто добавьте android:drawableLeft="@drawable/up_count_big" к вашему TextView.
LinearLayout
ImageView
android:drawableLeft="@drawable/up_count_big"
См. TextView # setCompoundDrawablesWithIntrinsicBounds для получения дополнительной информации.
если по какой-то причине вам нужно добавить через код, вы можете использовать это:
mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
где слева, сверху, справа внизу - Drawables
Чтобы добавить к этому - кажется важным определить ширину и высоту отрисовки согласно этому сообщению:
(его код работает)
Вы можете использовать общую составную реализацию для рисования, но если вам нужно определить размер рисуемой, используйте эту библиотеку:
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" />