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