Bilder bzw. Views überlagern

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von c0s4n, 03.11.2009.

  1. c0s4n, 03.11.2009 #1
    c0s4n

    c0s4n Threadstarter Neuer Benutzer

    Beiträge:
    21
    Erhaltene Danke:
    0
    Registriert seit:
    03.11.2009
    Hallo alle zusammen, ich arbeite an Augmented Reality und versuche grade ein 3D-Objekt mit der Camera zu überlagern. Ich habe mithilfe von OpenGL erstellt und eine CameraView ebenfalls. Möchte jetzt die beiden Sachen überlagern, wenn ich dieses mit FrameLayout versuche klappt es nicht, ich sehe entweder das eine oder das andere :(.

    Code sieht so aus:

    PHP:
    this.camView = new CamView(this.getApplicationContext());
    FrameLayout layout = new FrameLayout(this.getApplicationContext());
    this.setContentView(layout);
    layout.addView(this.camView);       
    layout.addView(this.threeDeeView);
    //LAYOUT

    Wenn ich so mache, dann sehe ich nur die camView, aber kein ThreeDee (mein 3D objekt) View :(.
    Hat jemand vielleicht ein beispiel oder Tutorial gesehen, oder auch irgendwie eine Vorstellung wie es gehen soll. Lese schon seit 3 Tagen darüber nach ich habe echt nichts gefunden.
     
  2. ko5tik, 04.11.2009 #2
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Schon mal mit Transparenz versucht? Letzte Child ist immer oben.
     
  3. c0s4n, 06.11.2009 #3
    c0s4n

    c0s4n Threadstarter Neuer Benutzer

    Beiträge:
    21
    Erhaltene Danke:
    0
    Registriert seit:
    03.11.2009
    Schon erledigt ;). So läuft es, ein kleines TUT.

    Code:
     public void onCreate(Bundle savedInstanceState) {
     _vortexView = new VortexView(this);
    this._vortexView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
    setContentView(_vortexView);
    this.camView = new  CamView(this);
    addContentView(this.camView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    }
    
    in der OnCreate sieht man vortexView, vortexView beinhaltet renderer, renderer hat bzw. erstellt das 3D-Objekt und zeichnet es (was ein renderer genau ist, bitte alles selbst nachschauen, ansonsten schreibt mich an ich schicke euch den Code ;)). Zuerst wird dsa View erstellt, dann mithilfe von setFormat auf transparent gesetzt, und als hauptView in Activity gestellt. Dann das Objekt camera erstellen, und zusätzlich zum Hauptview die camera hinzufügen. DIe hinzugefügte Kamera wird hinter dem 3D-Objekt zusehen sein ;).

    PS: Ach ja nicht vergessen, im Renderer auf kein Fall die funktion clearColor aufrufen, sonst ist die ganze Mühe umsonst :D
     

Diese Seite empfehlen