gpt4 book ai didi

java - 当我的应用程序处于纵向时使用横向相机

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:37 26 4
gpt4 key购买 nike

我已经尝试了各种方法来实现我想要的行为,但似乎没有任何效果。

我的应用锁定在纵向模式(我不想要横向 UI)但我希望能够切换相机显示以显示纵向和横向相机预览 模式交替。

我对捕捉图像不感兴趣。

要以纵向显示预览,我只需执行以下操作:

camera.setDisplayOrientation(90);

我的预览效果很好,但是,当我尝试在横向模式下显示相机预览时,我会:

camera.setDisplayOrientation(0);

而且预览确实旋转了,但是相机的图像没有旋转,最后的结果只是纵向图像旋转为横向。

我试过各种方法:

1) 使用parameters.setRotation() 旋转相机,但这只影响最终保存的图像,与预览无关;

2) set parameters.set("orientation", "landscape") 但这似乎没有效果(可能是旧的且尚未支持的命令?);

3) 设置以下方法的每个组合,但没有,有效旋转来自相机的图像的唯一方法似乎是物理旋转我的设备......

这是我的意思的实际演示:

enter image description here

enter image description here

enter image description here

enter image description here

如您所见,parameters.setRotation() 对预览没有影响,在纵向时是正确的,但在横向时只是旋转'导致相机不会自行旋转,而只是将人像图像旋转。

那么,有没有一种方法可以在应用处于纵向模式时以横向模式显示相机预览?

谢谢。

最佳答案

查看此方法以设置相机的方向。参数orientation是Display.getRotation(),你可以根据自己的需要更改设置。:

public void setCameraOrientation(int orientation) {
int orientationDegree = 0;
switch (orientation) {
case Surface.ROTATION_0:
orientationDegree = 0;
break;
case Surface.ROTATION_90:
orientationDegree = 90;
break;
case Surface.ROTATION_180:
orientationDegree = 180;
break;
case Surface.ROTATION_270:
orientationDegree = 270;
break;
}
int displayOrientation = (cameraInfo.orientation - orientationDegree + 360) % 360;
camera.setDisplayOrientation(displayOrientation);
Camera.Parameters parameters = camera.getParameters();
parameters.setRotation(displayOrientation);
camera.setParameters(parameters);
}

有关整个上下文,请查看我的相机演示应用程序 here .特别是 CameraPreview 类。

关于java - 当我的应用程序处于纵向时使用横向相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32270324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com