2015-04-22 69 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)你把之前旋转相机的预览图片。