欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程中调用Camera时预览画面有旋转问题的解决方法

程序员文章站 2023-12-10 12:58:28
本文实例讲述了android编程中调用camera时预览画面有旋转问题的解决方法。分享给大家供大家参考,具体如下: 在调用camera写应用的时候,前后摄像头的情况有时候...

本文实例讲述了android编程中调用camera时预览画面有旋转问题的解决方法。分享给大家供大家参考,具体如下:

在调用camera写应用的时候,前后摄像头的情况有时候是不一样的。有时候,明明后摄像头没有问题,而调用到前摄像头时,却倒转了180°,或者其他角度,百思不得其解。在查看了android源码之后,发现它的解决办法很是好,接下来贴个源码,以备日后查看。

public static int getdisplayrotation(activity activity) {
  int rotation = activity.getwindowmanager().getdefaultdisplay()
    .getrotation();
  switch (rotation) {
    case surface.rotation_0: return 0;
    case surface.rotation_90: return 90;
    case surface.rotation_180: return 180;
    case surface.rotation_270: return 270;
  }
  return 0;
}
public static void setcameradisplayorientation(activity activity,
    int cameraid, camera camera) {
  // see android.hardware.camera.setcameradisplayorientation for
  // documentation.
  camera.camerainfo info = new camera.camerainfo();
  camera.getcamerainfo(cameraid, info);
  int degrees = getdisplayrotation(activity);
  int result;
  if (info.facing == camera.camerainfo.camera_facing_front) {
    result = (info.orientation + degrees) % 360;
    result = (360 - result) % 360; // compensate the mirror
  } else { // back-facing
    result = (info.orientation - degrees + 360) % 360;
  }
  camera.setdisplayorientation(result);
}

在调用camera的时候只要调用setcameradisplayorientation这个方法就可以了。

希望本文所述对大家android程序设计有所帮助。