2010-07-22 4 views

risposta

107

utilizzare l'attributo android:background nel file xml. Il modo più semplice se vuoi applicarlo a un'intera attività è metterlo nella radice del tuo layout. Quindi, se si dispone di un RelativeLayout come l'inizio del vostro xml, metterlo in qui:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rootRL" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background"> 
</RelativeLayout> 
+6

Questo può, purtroppo, causare alcuni problemi ... sicuro che funzionerà per la vostra attività principale, ma se si apre una nuova attività con lo stesso Android: background = "@ drawable/sfondo", non appena si ruota l'emulatore nella maggior parte dei casi, e alcuni dispositivi, si bloccherà con un errore "Memoria esaurita .." se il tuo bgImg è ad alta risoluzione. @Sephy, come gestiresti questo problema? – whyoz

13

È possibile impostare l ' "immagine di sfondo" per un'attività impostando android:background attributi XML come seguenti:

(Qui , per esempio, prendere un LinearLayout per un'attività e l'impostazione di un'immagine di sfondo per il layout (ovvero indirettamente ad un'attività))

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:id="@+id/LinearLayout01" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:background="@drawable/icon"> 
</LinearLayout> 
+1

Ho notato che questo funziona bene per un LinearLayout, ma per RelativeLayouts, ottengo errori OOM. Ho letto molti post decodificaBitmap o i post layout.invalidate(), i post Bitmap.recycle, ecc. Come faresti a mantenere un'immagine come sfondo dell'app utilizzando RelativeLayouts? Devo memorizzare nella cache qualsiasi immagine che apparirà in più di una attività? Qual è la migliore pratica? – whyoz

0

e non dimenticate di pulire il progetto dopo aver scritto queste righe `ll un ottenere un errore nel tuo file xml fino a yo hai ripulito il tuo progetto in eclissi: Progetto-> Pulisci ...

2

Posiziona l'immagine nella cartella. la cartella drawable è in ris. drawable avere 5 varianti drawable-hdpi drawable-ldpi drawable-MDPI drawable-xhdpi drawable-xxhdpi

+0

Quale cartella dobbiamo usare? @Jesvin – jdyg

1

Oggi dobbiamo usare match_parent:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/background"> 
</RelativeLayout> 

enter image description here

1

possiamo facilmente posiziona l'immagine di sfondo in PercentFrameLayout usando ImageView. Dobbiamo impostare l'attributo scaleType value = "fitXY" e in primo piano possiamo anche visualizzare altre visualizzazioni di testo o pulsanti.

<android.support.percent.PercentFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     > 
     <ImageView 
      android:src="@drawable/logo" 
      android:id="@+id/im1" 
      android:scaleType="fitXY" 
      android:layout_height="match_parent" 
      android:layout_width="match_parent"/> 
<EditText android:layout_gravity="center_horizontal" 
     android:hint="Enter Username" 
     android:id="@+id/et1" 
     android:layout_height="wrap_content" 
     app:layout_widthPercent="50%" 
     app:layout_marginTopPercent="30%" 
     /> 
<Button 
    android:layout_gravity="center_horizontal" 
    android:text="Login" 
    android:id="@+id/b1" 
    android:layout_height="wrap_content" 
    app:layout_widthPercent="50%" 
    app:layout_marginTopPercent="40%"/> 
</android.support.percent.PercentFrameLayout>