即使关闭自动旋转,也可以获取 Android 设备的方向

4
我有一款安卓应用程序,其中屏幕方向在清单文件中设置为竖屏。它使用黑白自定义相机拍照,并需要保存照片。
在保存图像之前,我必须根据用户拿相机的方式旋转图像,以便图像以正确的方向保存。
那么,在我的应用程序运行在竖直模式并且安卓“自动旋转”功能开启时,是否存在一种获取设备取向的方法?我该如何实现呢?
4个回答

2

您应该根据图像内的方向信息进行旋转,而不是依赖于设备方向。

这里有更多信息,可以确定旋转方式。

如果这不起作用,您是否尝试过hackpod在这里提供的答案:

getResources().getConfiguration().orientation

我在 onPictureCallBack() 中获取了 byte[],那么我该如何查看方向信息? - hybrid
我添加了一个链接到我所遵循的SO问题。 - Ridcully
刚刚尝试了一下,Exif元数据始终具有方向为1的设置。 - hybrid
是的,我也尝试过那个方法。但它没有起作用。最终,我现在正在使用方向传感器来获取值,这不是我的问题的最佳解决方案。 - hybrid
抱歉,我无法帮助您 :-( - Ridcully

1
获取当前设备方向,请尝试以下方法:

getWindowManager().getDefaultDisplay().getRotation();

这给了我我的活动窗口方向。我已经将其始终设置为纵向。 - hybrid

0

我目前正在使用Android方向传感器来解决这个问题,它的工作非常完美。在有更好的工作方法出现之前,我接受这个答案并分享给其他有同样问题的人。


0

简单检查一下图像的高度和宽度。如果高度小于宽度,则意味着用户是以横向方式握住手机,因此您需要将其旋转。


两次的宽度和高度将是相同的,因为相机仅在纵向模式下工作。我现在已经检查过了。 - hybrid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接