2013-01-04 17 views
5

Ich habe einen ziehbar zu passen, die als Hintergrund arbeiten muss. Es muss gedehnt werden, um den Bildschirm zu füllen (das Seitenverhältnis wird ignoriert).Imageview ist Stretching den Bildschirm nicht

Ich habe geeignete Größen für LDPI, MDPI, hdpi und xhdpi zur Verfügung gestellt. (ich weiß, dass sie durch das Verhältnis der entsprechenden Breiten und Höhen geeignet sind, das ist genug?)

Ich habe versucht, dies zu tun, wie folgt:

mit Scaletype: fitXY auf dem Imageview

Dies hinterlässt einen weißen Rand (innerhalb?) Der Bildansicht.

fitXY image

Eine Arbeit um, dass ich nicht zufrieden bin mit ist Zentrum für die Scaletype wie folgt aus:

ich nicht zufrieden bin, weil das Problem besteht nach wie vor auf dem Tablet Bildschirme. enter image description here

Hinweis:

  • Wie Sie vielleicht bemerkt haben, habe ich versucht, die vorgeschlagenen Korrekturen an anderer Stelle auf SO wie Ansicht Grenzen auf true einstellen Einstellung. Sie haben hier nicht helfen. :(
  • Ich möchte eine nicht-programmatische Antwort/beheben, wie dies in XML selbst. Ich würde nicht wirklich Code schreiben wollen, um ein Hintergrundbild zu setzen; Das Leben sollte viel einfacher als das. (: P)

Update 1:

Hier ist das XML-Layout

<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

lassen Sie mich hinzufügen, dass ich andere scaleType Optionen ausprobiert habe und diese scheinen nicht zu beheben. (wie im WYSIWYG-Editor zu sehen) –

+0

können Sie versuchen, Hintergrund zum übergeordneten LinearLayout selbst durch usig hinzuzufügen 'android: background =" @ drawable/bg_gradient "' mit 'layout_width' und' layout_height 'entspricht' "match_parent" '. – pyus13

+0

@ pyus13 Ich habe das versucht, aber das hat wirklich nicht geholfen. Ich habe ähnliche Ergebnisse. Und der Grund, warum ich framelayout hier verwende, ist: 1) Ich kann "verschmelzen" und eine Ebene der Ansichtshierarchie beseitigen 2) der Farbverlauf, der Mann, Branding sind alle verschiedenen Bilder, die überlappt werden müssen –

Antwort

1

der Hack, den ich mit gehe jetzt ist die Verwendung dieses Satzes von Bildern eines s ist für Telefone und vielleicht ein anderer Satz von Bildern (und Layouts?) für WVGA (Tabletten). obwohl

Lassen Sie sich diese noch nicht ausprobiert. Ich werde mit Screenshots veröffentlichen, sobald ich tun .

Edit: Zahlen hatte es mit den Bildern selbst zu tun. Es gab transparente Polsterung. Wird Designer fragen, um es zu beheben. :)

0

Im grafischen Layout der Aktivität in Eclipse können Sie mit der rechten Maustaste auf die Aktivität klicken und dann "Hintergrund bearbeiten" auswählen. Dadurch können Sie das Bild als Hintergrund festlegen, der alle Ränder des Bildschirms abdeckt. Hoffe, das hilft, Prost Jim

+0

Danke für die Antwort. Aber stellt es nicht einfach den src des Hintergrunds auf dieses Bild ein? Zeigt immer noch die Mängel des Bildes, falls vorhanden. (wie in meiner Antwort geschrieben; sollte ich diesen Teil zum Q verschieben?) –

1

Anstelle von Android: src = "...", verwenden Sie Android: Hintergrund = "..." Attribut. Hoffe, es funktioniert.

Verwandte Themen