2016-03-30 4 views
9

Ich schreibe eine Phonegap-Anwendung mit einem benutzerdefinierten Plugin. Dieses Plugin erzeugt einen animierten Hintergrund im Vollbildmodus (im Wesentlichen ein Video) auf seinem eigenen SurfaceView (es ist ein Hintergrundvideo). Ich möchte, dass die normale phonegap-Webansicht als transparentes Overlay über diesem Plugin angezeigt wird. Wie kann ich das machen?Wie kann ich CordovaWebView von PhoneGap über einer nativen Ansicht in Android überlagern?

Mein aktueller Code:

public void initialize(CordovaInterface cordova, CordovaWebView webView) { 
    final FrameLayout layout = (FrameLayout) webView.getView().getParent(); 
    final Activity activity = cordova.getActivity(); 

    activity.runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       // here I insert the surface 
       // that I want to be placed behind the webview 
       activity.setContentView(R.layout.preview); 

       MySurfaceView myView = new MySurfaceView(activity); 
       FrameLayout preview = (FrameLayout) activity.findViewById(R.id.myview); 
       preview.addView(myView); 
      } 
      catch(Exception e) { 
       Log.e(CamCapture.TAG, "failed: " + e.getMessage()); 
      } 

     } 
    }); 
} 

Diese Frage ist das Gegenteil von How can I overlay a native view on top of PhoneGap's CordovaWebView in Android?

+0

Beachten Sie, dass aktuelle Versionen von CrossWalk Probleme mit der Transparenz haben. Das war Teil meines Problems. – brunobg

Antwort

2

Sie dies tun können Sie Ihre Web-Ansicht über india Ansicht in einer relativen Anordnung und Einstellung folgende Eigenschaft auf Ihrer Web-Ansicht, indem

Es macht den Hintergrund Ihrer Webview transparent und Sie können Ihre native Ansicht sehen.

+2

Kann dies mit einer normalen Cordova-Anwendung gemacht werden, Verschieben (oder Positionieren) der Webansicht im relativen Layout (auf der xml, wie)? Oder muss ich eine native Anwendung einrichten und das Webview oben erstellen? – brunobg

Verwandte Themen