Overlapping Ansichten in Android
-
12-09-2019 - |
Frage
Ist es möglich, überlappende Ansichten in Android zu haben? Ich möchte in der Front eine Image mit einem transparenten PNG haben und einem anderen Ansicht im Hintergrund.
edit:
Dies ist, was ich im Moment haben, das Problem ist, dass das Bild in der Imageview nicht transparent ist, die Teile, die transparent sein sollten, sind nur schwarz.
<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>
edit:
Ich habe es zu arbeiten, war es eine Design-Datei von einem anderen Programmierer im Team. Nur soviel geändert
<item name="android:background">#FF000000</item>
auf diese
<item name="android:background">#00000000</item>
Lösung
Android Griffe Transparenz über Ansichten und Drawables (einschließlich PNG-Bilder) nativ, so das Szenario, das Sie beschreiben (ein teilweise transparent ImageView
vor einem Gallery
) ist sicherlich möglich.
Wenn Sie Probleme haben es in Beziehung gesetzt werden kann entweder an das Layout oder das Bild. Ich habe das Layout, das Sie beschreiben repliziert und erfolgreich erreicht die Wirkung Sie nach. Hier ist das genaue Layout I verwendet wird.
<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>
Beachten Sie, dass ich das übergeordnete RelativeLayout
zu einer Höhe und Breite von fill_parent
geändert haben, wie allgemein ist, was Sie für eine Hauptaktivität möchten. Dann habe ich die Ober- und Unterseite des ImageView
an der Ober- und Unterseite des Gallery
ausgerichtet es zentriert vor ihm zu gewährleisten.
Ich habe auch explizit den Hintergrund der ImageView
transparent sein.
Wie für das Bild drawable selbst, wenn Sie die PNG-Datei irgendwo setzen für mich zu sehen ich es in meinem Projekt verwenden kann und sehen, ob es verantwortlich ist.
Andere Tipps
Werfen Sie auch einen Blick auf FrameLayout
, das ist, wie die Galerie-Anwendung Kamera, um die Zoom-Tasten Overlay implementiert.
Wenn Sie Sie benutzerdefinierte Overlay-Bildschirm auf Layout hinzufügen möchten, können Sie eine benutzerdefinierte Linear-Layout erstellen und Kontrolle der Zeichnung und Schlüsselereignisse erhalten. Sie können meine tutorial- Overlay auf Android Layout- http://prasanta-paul.blogspot.com/2010 /08/overlay-on-android-layout.html
Visible Galerie Änderungen Sichtbarkeit, die ist, wie Sie die Galerie über andere Ansicht Überlappung erhalten. die Home-Beispielanwendung einige gute Beispiele für diese Technik hat.
Der einfachste Weg ist, um -40dp Marge am Buttom des oberen Imageview
setzenJa, das ist möglich. Die Herausforderung ist jedoch ihr Layout richtig zu machen. Der einfachste Weg, es zu tun wäre eine AbsoluteLayout haben und dann die beiden Bilder setzen, wo Sie sie haben wollen. Sie brauchen nichts Besonderes für die transparente png zu tun, außer mit später in das Layout eingefügt.