ich habe 2 SurfaceViews
und 1 button
und sie müssen auf ähnliche Weise wie der beigefügte Screenshot angeordnet werden. Ich konnte es schaffen SurfaceView B
oben drauf sein SurfaceView A
durch anruf surfaceViewB.setZOrderOnTop(true);
Das Problem ist, dass, sobald ich das mache, SurfaceView B
ist über dem eigentlichen Fenster platziert und ich bin nicht mehr in der Lage, den Button darüber zu bekommen (zB aufrufend button.bringToFront()
ist hier nutzlos).
Irgendeine Idee, wie dieses Layout erreicht werden könnte?
Antworten:
1 für die Antwort № 1Sie können verwenden setZOrderMediaOverlay(boolean)
Platzieren Sie SurfaceView B über SurfaceView A, aber immer noch hinter dem Fenster. Aus der Dokumentation: Verknüpfung:
public void setZOrderMediaOverlay (boolean isMediaOverlay)
Kontrollieren Sie, ob die Oberfläche der Oberflächenansicht platziert ist über einem anderen regelmäßige Oberflächenansicht im Fenster (aber immer noch hinter dem Fenster selbst). Dies wird normalerweise verwendet, um Overlays über einem zu platzieren darunterliegende Medienoberflächenansicht.
Beachten Sie, dass dies vor dem Fenster der Oberflächenansicht festgelegt werden muss ist an den Fenstermanager angehängt.
Durch diesen Aufruf wird jeder vorherige Aufruf von setOrOrderOnTop (boolean) überschrieben.
Folgendes sollte für Sie funktionieren:
surfaceViewB.setZOrderMediaOverlay(true);