Запустил новый инструмент Lint для моего кода. Было много хороших предложений, но я этого не понимаю.
Этот тег и его дочерние элементы могут быть заменены одним и составным рисунком
Проблема: проверяет, можно ли заменить текущий узел на 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
/ImageView
комбо могут быть заменены таким образом.Ответы:
TextView
поставляется с 4 составными чертежами, по одному для каждого слева, сверху, справа и снизу.В твоем случае тебе и не нужно
LinearLayout
иImageView
вообще. Просто добавьandroid:drawableLeft="@drawable/up_count_big"
в свойTextView
.Посмотрите TextView # setCompoundDrawablesWithIntrinsicBounds для получения дополнительной информации.
источник
ImageView
. Предупреждение гласит: «может быть заменено», а не «должно быть заменено»если по какой-то причине вам нужно добавить через код, вы можете использовать это:
где слева, сверху, справа внизу - Drawables
источник
Чтобы добавить к этому - кажется важным определить ширину и высоту отрисовки согласно этому сообщению:
(его код работает)
источник
Вы можете использовать общую составную реализацию drawable, но если вам нужно определить размер drawable, используйте эту библиотеку:
https://github.com/a-tolstykh/textview-rich-drawable
Вот небольшой пример использования:
источник