2015-04-22 1 views
0

La caméra avant est affichée à l'envers. Je lis chaque image. Je pense que je sais où mettre le code. En surface, mais je ne sais pas comment faire.Aperçu de la caméra à l'envers

@Override 
    public void surfaceChanged(SurfaceHolder mHolder, int arg1 , int arg2 , int arg3) 
    { 
     if (mHolder.getSurface() == null) { return; } 

     mCamera.setPreviewCallback(previewCallback); 

     try 
     { 
      mCamera.setPreviewDisplay(mHolder); 
      mCamera.startPreview(); 

      return; 
     } 
     catch (Exception exception) 
     { 
      Log.d("CameraView", (new StringBuilder()).append("Error starting camera preview: ") 
        .append(exception.getMessage()).toString()); 
     } 
    } 

Qu'ai-je essayé.

private android.hardware.Camera.PreviewCallback previewCallback = new android.hardware.Camera.PreviewCallback() 
    { 
     public void onPreviewFrame(byte abyte0[] , Camera camera) 
     {  
      int[] rgbData = YuvUtils.decodeGreyscale(abyte0, widthPreview,heightPreview); 

      editedBitmap.setPixels(rgbData, 0, widthPreview, 0, 0, widthPreview, heightPreview); 

      if(MainActivity2.cameraId==CameraInfo.CAMERA_FACING_FRONT) // it is rotating my CameraPreview continuosly. 
      { 
       matrix.postRotate(270F); 
      } 
      finalBitmap = Bitmap.createBitmap(editedBitmap, 0, 0, widthPreview, heightPreview, matrix, true); 

      if(saveCurrentFrame) 
      { 
       saveCurrentFrame =false; 

       new BitmapSaver(ctx, finalBitmap).start(); 
      } 
     } 
    }; 

Mais il est continuellement en rotation mon aperçu de la caméra. Et mon activité est définie sur Potrait. Aucun changement d'orientation n'est autorisé dans mon activité

Répondre

4

J'utiliserais matrix.setRotate().

matrix.postRotate() ajoute sur la rotation chaque fois qu'il est appelé. Angles vont de 270 -> 540 -> 810 -> 1080 -> 1350 -> etc.

matrix.setRotate() définissaient systématiquement à 270.

+0

Merci beaucoup. Ça fonctionne. – Nepster

+1

Bien. Je suis heureux. :) –

+0

Un problème que j'ai quand je incline l'appareil photo.Il montre à l'envers. Où comme j'ai mis mon activité à potrait. Toute idée de quoi faire. – Nepster

1

Vous pouvez utiliser _camera.SetDisplayOrientation(90) pour faire pivoter l'aperçu de votre appareil photo avant de prendre l'image.