Viste sovrapposte in Android
-
12-09-2019 - |
Domanda
È possibile avere visualizzazioni sovrapposte in Android?Mi piacerebbe avere un ImageView con un png trasparente nella parte anteriore e un'altra vista sullo sfondo.
modificare:
Questo è quello che ho in questo momento, il problema è che l'immagine in imageView non è trasparente, le parti che dovrebbero essere trasparenti sono solo nere.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/gallerylayout"
>
<Gallery android:id="@+id/overview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView android:id="@+id/navigmaske"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/navigmask"
/>
</RelativeLayout>
modificare:
L'ho fatto funzionare, era un file del tema di un altro programmatore del team.Ho appena cambiato questo
<item name="android:background">#FF000000</item>
a questa
<item name="android:background">#00000000</item>
Soluzione
Android gestisce la trasparenza tra visualizzazioni e drawable (comprese le immagini PNG) in modo nativo, quindi lo scenario che descrivi (un file parzialmente trasparente ImageView
davanti ad a Gallery
) è certamente possibile.
Se riscontri problemi, potrebbe essere correlato al layout o all'immagine.Ho replicato il layout che descrivi e ho ottenuto con successo l'effetto che stai cercando.Ecco il layout esatto che ho usato.
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gallerylayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Gallery
android:id="@+id/overview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/navigmaske"
android:background="#0000"
android:src="@drawable/navigmask"
android:scaleType="fitXY"
android:layout_alignTop="@id/overview"
android:layout_alignBottom="@id/overview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
Tieni presente che ho cambiato il genitore RelativeLayout
ad un'altezza e larghezza di fill_parent
come generalmente è ciò che desideri per un'attività principale.Quindi ho allineato la parte superiore e inferiore del ImageView
nella parte superiore e inferiore del Gallery
per assicurarsi che sia centrato davanti ad esso.
Ho anche impostato esplicitamente lo sfondo del file ImageView
essere trasparente.
Per quanto riguarda l'immagine disegnabile stessa, se metti il file PNG da qualche parte affinché io possa guardarlo, posso usarlo nel mio progetto e vedere se è responsabile.
Altri suggerimenti
Inoltre, dai un'occhiata FrameLayout
, ecco come l'applicazione Galleria della fotocamera implementa la sovrapposizione dei pulsanti Zoom.
Se desideri aggiungere la tua schermata di sovrapposizione personalizzata sul layout, puoi creare un layout lineare personalizzato e ottenere il controllo del disegno e degli eventi chiave.Puoi il mio tutorial - Overlay su Android Layout-http://prasanta-paul.blogspot.com/2010/08/overlay-on-android-layout.html
La galleria visibile modifica la visibilità, ovvero il modo in cui ottieni la galleria rispetto ad altre visualizzazioni sovrapposte.l'app Home sample contiene alcuni buoni esempi di questa tecnica.
Il modo più semplice è inserire un margine di -40 dp nella parte inferiore della visualizzazione dell'immagine superiore
Sì, è possibile.La sfida, tuttavia, è realizzare il loro layout correttamente.Il modo più semplice per farlo sarebbe avere un AbsoluteLayout e quindi mettere le due immagini dove vuoi che siano.Non è necessario fare nulla di speciale per il png trasparente se non aggiungerlo successivamente al layout.