Harry
- Forum-Beiträge: 52
09.05.2011, 11:19:27 via Website
09.05.2011 11:19:27 via Website
Ich schätze, ich habe das Problem zu kompliziert dargestellt.
Hier ein erneuter Versuch:
Ich möchte eine GLSurfaceView mit OpenGL objecten in ein ganz normales Android Layout eingliedern.
Hierbei sollen einige Views vor und einige hinter meinen OpenGL-Objecten sein.
Dies kann beeinflusst werden, in einem stink normalen XML-Layout.
Mein Problem ist jedoch, dass ich den Hintergrund der GLSurfaceView nur transparent bekomme, wenn ich die Eigenschaft setZorderOnTop(true) setze.
Wodurch die GLSurfaceView jedoch vor alle Views gesetzt wird.
Hat jemand eine Idee, wie man dieses Problem lösen könnte? Ich beiße mir hieran wirklich alle Zähne aus. Über jeglichen Tipp bin ich sehr dankbar!
Gruß Harry
Hallo,
ich versuche gerade eine View (RelativeLayout) vor meine GLSurfaceView zu bringen.
Meine Ausgangssituation ist folgende:
In der Activity-Klasse setze ich als ContentView ein XML-Layout. Hierdrin setzte ich verschiedene Buttons und TextViews mit verschiedenen Layouts.
Zudem setzte ich in meinem XML-Layout auch eine GLSurfaceView.
Die GLSurfaceView ist transparent und setZOrderOnTop ist True.
Somit Zeichne ich also meien "Standard-Views" (Buttons, TextViews, etc.) hinter die transparente GLSurfaceView.
Soweit klappt auch alles.
Nun möchte ich aber bei einem Klick auf einen Button eine View (eine gefärbte Fläche) von oben in einer TranslateAnimation hereinfahren lassen.
Dies funktioniert auch, jedoch sind die Objekte die ich in meiner GLSurfaceView zeichne, vor meiner Animation.
Die Eigenschaft SetZOrderOnTop der GLSurfaceView auf "False" zu setzten hat keinen effekt.
Über jeglichen Tipp bin ich dankbar!
Gruß Harry
Nachtrag zur Verdeutlichung:
Wenn ich dies jedoch nicht tue, fährt die View in der Anmation wie gewünscht vor die GLSurfaceView.
Daher suche ich eine Möglichkeit, die GLSurfaceView on Runtime auf setZOrderOnTop(true) zu setzen, was die Methode jeodch laut Doku nicht unterstützt.
Control whether the surface view's surface is placed on top of its window. Normally it is placed behind the window, to allow it to (for the most part) appear to composite with the views in the hierarchy. By setting this, you cause it to be placed above the window. This means that none of the contents of the window this SurfaceView is in will be visible on top of its surface.
Note that this must be set before the surface view's containing window is attached to the window manager.
Calling this overrides any previous call to setZOrderMediaOverlay(boolean).
Hier ein erneuter Versuch:
Ich möchte eine GLSurfaceView mit OpenGL objecten in ein ganz normales Android Layout eingliedern.
Hierbei sollen einige Views vor und einige hinter meinen OpenGL-Objecten sein.
Dies kann beeinflusst werden, in einem stink normalen XML-Layout.
Mein Problem ist jedoch, dass ich den Hintergrund der GLSurfaceView nur transparent bekomme, wenn ich die Eigenschaft setZorderOnTop(true) setze.
Wodurch die GLSurfaceView jedoch vor alle Views gesetzt wird.
Hat jemand eine Idee, wie man dieses Problem lösen könnte? Ich beiße mir hieran wirklich alle Zähne aus. Über jeglichen Tipp bin ich sehr dankbar!
Gruß Harry
Hallo,
ich versuche gerade eine View (RelativeLayout) vor meine GLSurfaceView zu bringen.
Meine Ausgangssituation ist folgende:
In der Activity-Klasse setze ich als ContentView ein XML-Layout. Hierdrin setzte ich verschiedene Buttons und TextViews mit verschiedenen Layouts.
Zudem setzte ich in meinem XML-Layout auch eine GLSurfaceView.
Die GLSurfaceView ist transparent und setZOrderOnTop ist True.
Somit Zeichne ich also meien "Standard-Views" (Buttons, TextViews, etc.) hinter die transparente GLSurfaceView.
Soweit klappt auch alles.
Nun möchte ich aber bei einem Klick auf einen Button eine View (eine gefärbte Fläche) von oben in einer TranslateAnimation hereinfahren lassen.
Dies funktioniert auch, jedoch sind die Objekte die ich in meiner GLSurfaceView zeichne, vor meiner Animation.
Die Eigenschaft SetZOrderOnTop der GLSurfaceView auf "False" zu setzten hat keinen effekt.
Über jeglichen Tipp bin ich dankbar!
Gruß Harry
Nachtrag zur Verdeutlichung:
1glSurfaceView.setZOrderOnTop(true);
Muss ich am Anfang setzten, da ich zu diesem Zeitpunkt die GLSurfaceView tatsächlich im Vordergrund haben will.Wenn ich dies jedoch nicht tue, fährt die View in der Anmation wie gewünscht vor die GLSurfaceView.
Daher suche ich eine Möglichkeit, die GLSurfaceView on Runtime auf setZOrderOnTop(true) zu setzen, was die Methode jeodch laut Doku nicht unterstützt.
Control whether the surface view's surface is placed on top of its window. Normally it is placed behind the window, to allow it to (for the most part) appear to composite with the views in the hierarchy. By setting this, you cause it to be placed above the window. This means that none of the contents of the window this SurfaceView is in will be visible on top of its surface.
Note that this must be set before the surface view's containing window is attached to the window manager.
Calling this overrides any previous call to setZOrderMediaOverlay(boolean).
— geändert am 12.05.2011, 16:00:30
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.