У меня есть черепичное растровое изображение, которое я использую в качестве фона View
. Это View
, скажем, имеет android:layout_height="wrap_content"
. Проблема в том, что высота растрового изображения, используемого в фоновом режиме, участвует в измерении вида, увеличивая высоту View
. Это можно заметить, когда размер содержимого View
меньше высоты растрового изображения, используемого в качестве фона плитки.
Позвольте мне показать вам пример. Растровое изображение плитки:
Растровое изображение (tile_bg.xml
):
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/tile"
android:tileMode="repeat"/>
Макет:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#FFFFFF">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tile_bg"
android:text="@string/hello"
android:textColor="#000000" />
</LinearLayout>
Как это выглядит:
Высота TextView
заканчивается высотой растрового изображения. Я ожидал, что растровое изображение обрезается до размера View
.
Есть ли способ достичь этого?
Примечания:
- Я не могу использовать вытяжки 9patch, так как фон должен быть повторен способом мозаики, растяжка не является вариантом.
- Я не могу установить фиксированную высоту для
View
, это зависит от детей (я использую это вViewGroup
) - Это странное поведение происходит, как я объяснял ранее, когда размер
View
меньше, чем размер растрового изображения, в противном случае битмап повторяется правильно отрезанным (т.е. если размер представления составляет 1,5x, размер растровое изображение, вы получите в 1,5 раза растровое изображение). - Пример относится к высоте, но тот же, что и ширина.