即使 autoRotation 关闭,也能获取 android 设备方向
Posted
技术标签:
【中文标题】即使 autoRotation 关闭,也能获取 android 设备方向【英文标题】:Get android device orientation even when autoRotation is turned off 【发布时间】:2015-12-20 16:23:36 【问题描述】:我有一个 android 应用,其中屏幕方向在清单文件中设置为纵向。 它在 b/w 中使用自定义相机来拍照,我需要保存照片。
在保存图像之前,我必须根据用户握持相机的方式旋转图像,以便图像以正确的方向保存。
那么,即使我的应用程序以纵向模式运行并且 android“自动旋转”功能已打开,有什么方法可以让我获得设备方向。 我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:您应该根据图像中的方向信息进行旋转,而不是取决于设备方向。
Here is some more information 关于如何确定旋转。
既然这样没用,你有没有试过hackpod的回答here:
getResources().getConfiguration().orientation
【讨论】:
我得到了 onPictureCallBack() 中的 byte[] ,从那里我怎么能看到方向信息? 我添加了指向我关注的 SO 问题的链接。 刚试了一下,Exif Meta数据的方向也一直是1 是的,我也试过那个。不工作。最后现在我使用方向传感器来获取值,这不是我的问题的最佳解决方案。 对不起,我帮不了你:-(【参考方案2】:要获得当前的设备方向,试试这个:
getWindowManager().getDefaultDisplay().getRotation();
【讨论】:
这给了我我的活动窗口方向。我一直把它设置为纵向【参考方案3】:只需检查图像的高度和宽度。如果高度小于您的宽度,则表示用户水平握住手机,因此您必须旋转它。
【讨论】:
宽度和高度都相同,因为相机仅在纵向模式下工作。我现在检查了。【参考方案4】:我目前正在使用 android 方向传感器来解决这个问题并且它工作得很好。直到有人给出更好的工作方法,我接受这个作为其他有相同问题的人的答案。
【讨论】:
以上是关于即使 autoRotation 关闭,也能获取 android 设备方向的主要内容,如果未能解决你的问题,请参考以下文章
Beginning iOS 7 Development《精通iOS7开发》05 Autorotation and Autosizing