Mam kafelkową mapę bitową, której używam jako tło View
. Ta View
, powiedzmy, ma android:layout_height="wrap_content"
. Problem polega na tym, że wysokość mapy bitowej wykorzystywanej w tle bierze udział w pomiarze widoku, podnosząc wysokość o View
. Można to zauważyć, gdy rozmiar zawartości View
jest mniejszy niż wysokość mapy bitowej używanej jako tło kafelka.Wyłożone kafelkami tło pcha jego rozmiar Rozmiar:
Pozwól, że pokażę ci przykład. Dachówka bitmap:
odkształcalne bitmapy (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"/>
Układ:
<?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>
Jak to wygląda:
Wysokość TextView
kończy się wysokością bitmapy. Spodziewałem się, że bitmapa zostanie przycięta do rozmiaru View
.
Czy jest jakiś sposób, aby to osiągnąć?
Uwagi:
- Nie mogę korzystać 9patch kanału alfa, ponieważ tło musi być powtarzany w sposób płytki mody, rozciągając nie jest rozwiązaniem.
- Nie mogę ustawić stałą wysokość dla
View
, to zależy od dzieci (używam tego wViewGroup
) - To dziwne zachowanie się dzieje jak wyjaśniono wcześniej, gdy wielkość jest mniejsza niż
View
rozmiar mapy bitowej, w przeciwnym razie mapa bitowa jest powtarzana poprawnie (tzn. jeśli rozmiar widoku jest 1,5x większy niż rozmiar mapy bitowej, kończy się widzenie 1,5 raza bitmapy). - Przykład dotyczy wysokości, ale jest taki sam przy użyciu szerokości.
Doskonała odpowiedź, dzięki! – aromero