安卓相机的问题

发布于 2024-11-30 16:56:01 字数 327 浏览 0 评论 0原文

我正在 android 中构建一个使用相机的应用程序。我已经构建了自己的相机,但问题是,一旦我以这种方式打开相机:

 public void surfaceCreated(SurfaceHolder holder) {
        Log.e(TAG, "surfaceCreated");
        mCamera = Camera.open();

    }

当手机处于 状态时,我的预览和拍摄的照片都会旋转 90 度>纵向模式,当手机转到横向模式时,一切看起来都很棒。有谁知道如何解决这个问题。

谢谢你!

I'm building an application in android which uses the camera.I have built my own camera but the problem is that once I open my camera this way:

 public void surfaceCreated(SurfaceHolder holder) {
        Log.e(TAG, "surfaceCreated");
        mCamera = Camera.open();

    }

Both my preview and the picture taken are rotated 90 degrees when the phone is in portrait mode, when the phone is turned in the landscape mode everything looks great.Does anyone know how could this be solved.

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三生路 2024-12-07 16:56:01

Camara.Parameters 的 setRotation(introtation) 是你的朋友。

编辑:

您是否在文档中看到了参考代码:

public void public void onOrientationChanged(int orientation) {
     if (orientation == ORIENTATION_UNKNOWN) return;
     android.hardware.Camera.CameraInfo info =
            new android.hardware.Camera.CameraInfo();
     android.hardware.Camera.getCameraInfo(cameraId, info);
     orientation = (orientation + 45) / 90 * 90;
     int rotation = 0;
     if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
         rotation = (info.orientation - orientation + 360) % 360;
     } else {  // back-facing camera
         rotation = (info.orientation + orientation) % 360;
     }
     mParameters.setRotation(rotation);
 }

setRotation(int rotation) of Camara.Parameters is your friend here.

Edit:

Did you see the reference code in the docs :

public void public void onOrientationChanged(int orientation) {
     if (orientation == ORIENTATION_UNKNOWN) return;
     android.hardware.Camera.CameraInfo info =
            new android.hardware.Camera.CameraInfo();
     android.hardware.Camera.getCameraInfo(cameraId, info);
     orientation = (orientation + 45) / 90 * 90;
     int rotation = 0;
     if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
         rotation = (info.orientation - orientation + 360) % 360;
     } else {  // back-facing camera
         rotation = (info.orientation + orientation) % 360;
     }
     mParameters.setRotation(rotation);
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文