首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当方向固定时获得屏幕方向

当方向固定时获得屏幕方向
EN

Stack Overflow用户
提问于 2014-09-09 08:26:41
回答 2查看 210关注 0票数 1

OpenCV库强制我在android:screenOrientation="landscape"中定义android:screenOrientation="landscape",以便在全屏上显示相机。我想检测我的android应用程序中的某些对象(基本形式的对象识别)。问题是,为了检测物体,无论手机在什么方向,都会在景物中分析摄像机的画面。因此,当你的手机处于纵向模式时,图像识别算法不会检测到任何物体,因为它只会分析景观模式下的帧。

我想显示一个烤面包,当用户有电话在肖像模式,使他知道,图像识别只在景观中工作。但是,获得屏幕方向的经典方法(例如使用getResources().getConfiguration().orientation)是行不通的,因为方向是固定在报表中的景观(所以结果总是ORIENTATION_LANDSCAPE)。

还有其他方法来获取手机的物理方向(即使活动的方向是固定的) ?

EN

回答 2

Stack Overflow用户

发布于 2014-09-09 08:37:15

但是,要使您的活动捕捉到这一点,您需要向清单文件中的活动节点添加一个属性来处理更改。

代码语言:javascript
复制
<activity android:name=".My_Activity"
android:label="@string/app_name"
android:configChanges="orientation">

在你的活动课上:

代码语言:javascript
复制
@Override
public void onConfigurationChanged(Configuration myConfig) {
    super.onConfigurationChanged(myConfig);
    int orient = getResources().getConfiguration().orientation; 
    switch(orient) {
                case Configuration.ORIENTATION_LANDSCAPE:
                    //you can remove this case if you want
                    break;
                case Configuration.ORIENTATION_PORTRAIT:
                    //You can give a toast here
                    break;
                default:
                    //take necessary action
                }
}
票数 1
EN

Stack Overflow用户

发布于 2018-02-06 10:17:55

简而言之,你必须直接使用传感器:Android: get device orientation from Azimuth, roll & pitch

他创建了一个很好的实用工具类:https://gist.github.com/abdelhady/501f6e48c1f3e32b253a#file-deviceorientation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25739891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档