2015-04-22 65 views
0

前置相機顯示顛倒。我正在閱讀每一幀。我想我知道把代碼放在哪裏。SurfaceChanged但不知道該怎麼做。顛倒相機預覽

@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()); 
     } 
    } 

有我想什麼。

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(); 
      } 
     } 
    }; 

但它是連續旋轉我的相機預覽。我的活動設置爲Potrait。 我的活動中不允許改變方向

回答

4

我會使用matrix.setRotate()

matrix.postRotate()每次調用時都會添加旋轉。從角度去270 - > 540 - > 810 - > 1080 - > 1350 - >等

matrix.setRotate()總是將它設置爲270

+0

非常感謝。這是工作。 – Nepster

+1

好。我很高興。 :) –

+0

當我傾斜相機時出現了一個問題,它顯示顛倒。在哪裏,我已將我的活動設置爲potrait。任何想法做什麼。 – Nepster

1

您可以使用_camera.SetDisplayOrientation(90)你把之前旋轉相機的預覽圖片。