utilizzando il tema o ImageView?come aggiungere l'immagine di sfondo all'attività?
risposta
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>
È 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>
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
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 ...
Posiziona l'immagine nella cartella. la cartella drawable è in ris. drawable avere 5 varianti drawable-hdpi drawable-ldpi drawable-MDPI drawable-xhdpi drawable-xxhdpi
Quale cartella dobbiamo usare? @Jesvin – jdyg
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>
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>
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