Mam rysowalną, która musi działać jako tło. Musi rozciągnąć, aby wypełnić ekran (ignorując współczynnik proporcji).imageView nie rozciąga się na ekranie
Podałem odpowiednie rozmiary dla plików ldpi, mdpi, hdpi i xhdpi. (wiem, że są odpowiednio przez współczynnik odpowiadający szerokości i wysokości, czy to wystarczy?)
Próbowałem to zrobić w następujący sposób:
użyciu scaleType: fitXY na ImageView
To pozostawia biały margines wokół (wewnątrz?) ObrazuView.
Dzieło wokół, że nie jestem zadowolony z używa Centrum scaleType jak ten:
nie jestem zadowolony, bo problem nadal występuje na tablecie ekrany.
Uwaga:
- Jak można zauważyć, próbowałem sugerowane poprawki gdzie indziej na SO jak ustawienie Regulacja Zobacz granic true. Nie pomogli tutaj . :(
- Chciałbym nieautomatyczną odpowiedź/naprawić, jak w tym w samym XML.Nie chciałbym naprawdę pisać kod, aby ustawić obraz tła, Życie powinno być znacznie prostsze niż to. (: P)
Aktualizacja 1:
Oto Układ XML
<merge xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" -->
<!-- xmlns:tools="http://schemas.android.com/tools" -->
<!-- android:id="@+id/FrameLayout1" -->
<!-- android:layout_width="fill_parent" -->
<!-- android:layout_height="fill_parent" -->
<!-- tools:context=".SplashScreen" > -->
<!--
This FrameLayout insets its children based on system windows using
android:fitsSystemWindows
-->
<View
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:onClick="onClickTapToContinue"
>
</View>
<ImageView
android:id="@+id/bg_gradient"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="fill"
android:adjustViewBounds="true"
android:contentDescription="@string/this_is_the_background_image"
android:scaleType="center"
android:src="@drawable/bg_gradient" />
<ImageView
android:id="@+id/bg_artwork"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:contentDescription="@string/artwork_man"
android:src="@drawable/bg_artwork" />
<!-- </FrameLayout> -->
<ImageView
android:id="@+id/branding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|top"
android:adjustViewBounds="true"
android:contentDescription="@string/branding_text"
android:maxHeight="95dp"
android:paddingTop="5dp"
android:src="@drawable/title_wlcm" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:paddingBottom="5dp"
android:text="@string/tap_continue"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/white" />
</merge>
Pozwól mi dodać, że próbowałem innych opcji scaleType i nie wydaje się, aby to naprawić. (jak widać w edytorze WYSIWYG) –
możesz spróbować dodać tło do rodzica LinearLayout przez usig 'android: background =" @ drawable/bg_gradient "' z 'layout_width' i' layout_height' jest równy '" match_parent "'. – pyus13
@ pyus13 Próbowałem, ale to naprawdę nie pomogło. Mam podobne wyniki. Powodem, dla którego używam framelayout tutaj jest to, że: 1) Mogę "scalić" i wyeliminować jeden poziom hierarchii widoku 2) gradient, człowiek, branding są różnymi obrazami, które muszą się pokrywać –