2016-02-25 14 views
16

ich arbeite auf einer IOS und Android-Anwendung mit einer benutzerdefinierten Kamera-Ansicht (das ist, warum ich nicht Kameramodul http://docs.nativescript.org/ApiReference/camera/README verwenden)NativeScript: benutzerdefinierte Kameraansicht

Ich brauche meine eigene UI über der Kameravorschau haben.

Kann ich das mit Nativescript machen?

Ich konnte kein Modul/Plugin mit dieser Funktion finden. Ist es schwer, ein eigenes Modul zu schreiben?

Jede Hilfe wird zu schätzen wissen ...

Dank

+3

können Sie verwenden die nativen iOS- und Android-APIs, um eine eigene Kameraansicht zu erstellen (zum Beispiel mit Platzhalter) - hier ist p Roof-of-Concept Beispiel App https://github.com/NickIliev/sample-cameraApp –

+0

@NickIliev - das GitHub Beispiel funktioniert nicht für mich. Alles aktualisiert? Ich poste morgen bei git das Logbuch - wenn du dem folgst – Marko

Antwort

0

Verwenden Sie die Surface in layout.xml

<SurfaceView 
       android:id="@+id/surfaceview" 
       android:layout_centerHorizontal="true" 
       android:layout_width="350dp" 
       android:layout_height="260dp" /> 

Verwendung folgenden Code in Aktivitätsklasse

SurfaceView surfaceView; 
CameraSource cameraSource; 

final TextRecognizer textRecognizer = new TextRecognizer.Builder(getApplicationContext()).build(); 
     cameraSource = new CameraSource.Builder(getApplicationContext(), textRecognizer) 
       .setFacing(CameraSource.CAMERA_FACING_BACK) 
       .setAutoFocusEnabled(true) 
       .build(); 
     surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { 
      @Override 
      public void surfaceCreated(SurfaceHolder surfaceHolder) { 

       try { 
        cameraSource.start(surfaceView.getHolder()); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

      @Override 
      public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { 

      } 

      @Override 
      public void surfaceDestroyed(SurfaceHolder surfaceHolder) { 
       cameraSource.stop(); 
      } 
     }); 
     textRecognizer.setProcessor(new Detector.Processor<TextBlock>() { 
      @Override 
      public void release() { 


      }