java – 当我的应用程序处于纵向时,在横向中使用相机
我已经尝试过各种方式来实现我想要的行为,但似乎没有任何工作.
我的应用程序被锁定在纵向模式(我不想要横向UI)但我希望能够切换相机显示以交替显示纵向和横向模式的相机预览. 我对拍摄图像不感兴趣. 要以纵向显示预览,我只需: camera.setDisplayOrientation(90); 我的预览工作正常,但是,当我尝试在横向模式下显示相机预览时,我会: camera.setDisplayOrientation(0); 并且预览实际上是旋转的,但是来自相机的图像没有旋转,最终结果只是旋转到横向的肖像图像. 我尝试过各种方式: 1)使用parameters.setRotation()旋转相机,但这只影响保存的最终图像,与预览无关; 2)设置parameters.set(“orientation”,“landscape”)但这似乎没有效果(可能是一个旧的,尚未支持的命令?); 3)设置下面方法的每个组合,但没有,有效旋转图像的唯一方法来自相机似乎是物理旋转我的设备… 这是我的意思的实际演示: 正如您所看到的,parameters.setRotation()对预览没有影响,这在纵向时是正确的,但只是在横向旋转,因为相机不会自行旋转,而只是旋转纵向图像. 那么,当应用程序处于纵向状态时,有没有办法在横向显示相机预览? 谢谢. 解决方法
查看此方法以设置相机的方向.参数方向是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类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |