2013-01-04 20 views
5

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.

fitXY image

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. enter image description here

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> 
+0

Pozwól mi dodać, że próbowałem innych opcji scaleType i nie wydaje się, aby to naprawić. (jak widać w edytorze WYSIWYG) –

+0

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

+0

@ 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ć –

Odpowiedz

1

Hack Idę z teraz stosuje te zestaw obrazów a s jest dla telefonów i może innego zestawu obrazów (i układów?) dla WVGA (tablety).

Jeszcze tego nie próbowałem. Będę publikować zrzuty ekranu, jak tylko zrobię to za .

Edytuj: Ryciny dotyczyły samych zdjęć. Było przezroczyste obicie. Poprosi projektanta, aby to naprawił. :)

0

W graficznym ujęciu aktywności w zaćmieniu można kliknąć prawym przyciskiem myszy aktywność, a następnie wybrać "edytuj tło". Pozwoli to ustawić obraz jako tło, które obejmuje wszystkie krawędzie ekranu. Mam nadzieję, że to pomoże, okrzyki Jim

+0

Dzięki za odpowiedź. Ale czy nie wystarczy ustawić src tła dla tego obrazu? Nadal pokazuje usterki obrazu, jeśli jest. (jak napisałem w mojej odpowiedzi, czy powinienem przenieść tę część do Q?) –

1

Zamiast używać Androida: src = "...", użyj atrybutu android: background = "...". Mam nadzieję, że to działa.

Powiązane problemy