Android编程中调用Camera时预览画面有旋转问题的解决方法
本文实例讲述了Android编程中调用Camera时预览画面有旋转问题的解决方法。分享给大家供大家参考,具体如下:
在调用Camera写应用的时候,前后摄像头的情况有时候是不一样的。有时候,明明后摄像头没有问题,而调用到前摄像头时,却倒转了180°,或者其他角度,百思不得其解。在查看了Android源码之后,发现它的解决办法很是好,接下来贴个源码,以备日后查看。
publicstaticintgetDisplayRotation(Activityactivity){ introtation=activity.getWindowManager().getDefaultDisplay() .getRotation(); switch(rotation){ caseSurface.ROTATION_0:return0; caseSurface.ROTATION_90:return90; caseSurface.ROTATION_180:return180; caseSurface.ROTATION_270:return270; } return0; } publicstaticvoidsetCameraDisplayOrientation(Activityactivity, intcameraId,Cameracamera){ //Seeandroid.hardware.Camera.setCameraDisplayOrientationfor //documentation. Camera.CameraInfoinfo=newCamera.CameraInfo(); Camera.getCameraInfo(cameraId,info); intdegrees=getDisplayRotation(activity); intresult; if(info.facing==Camera.CameraInfo.CAMERA_FACING_FRONT){ result=(info.orientation+degrees)%360; result=(360-result)%360;//compensatethemirror }else{//back-facing result=(info.orientation-degrees+360)%360; } camera.setDisplayOrientation(result); }
在调用Camera的时候只要调用setCameraDisplayOrientation这个方法就可以了。
希望本文所述对大家Android程序设计有所帮助。