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程序设计有所帮助。