标签: device-orientation

"风景"和"风景反转"方向的不同布局

我的问题:

对于某些要求,我的活动需要两种不同的xml布局:

  • 一个用于风景模式.
  • 另一个用于景观反转模式(颠倒景观).

不幸的是Android不容许景观反向创建单独的布局(如我们可以为纵向和横向与做layout-landlayout-port).

AFAIK,唯一的方法是从java代码更改activity-xml.

我尝试过的:

1)覆盖onConfigurationChanged()方法来检测方向变化,但我无法弄清楚它是横向还是横向反转:

@Override
public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);

     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
         Log.d("TEST","Landscape");
     }

}
Run Code Online (Sandbox Code Playgroud)

(android:configChanges="keyboardHidden|orientation|screenSize|layoutDirection"在清单中我的活动标签中的whith)

2)使用此答案中建议的OrientationEventListenerwith SENSOR_DELAY_NORMAL,但在进入我的块之前设备方向会发生变化,因此我得到了视图的延迟更新:if

mOrientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_NORMAL){

            @Override
            public void onOrientationChanged(int orientation) {

                if (orientation==0){
                    Log.e("TEST", "orientation-Portrait  = "+orientation);
                } else if (orientation==90){
                    Log.e("TEST", "orientation-Landscape = "+orientation);
                } else if(orientation==180){
                    Log.e("TEST", "orientation-Portrait-rev = "+orientation);
                }else if (orientation==270){
                    Log.e("TEST", …
Run Code Online (Sandbox Code Playgroud)

android landscape orientation device-orientation orientation-changes

6
推荐指数
1
解决办法
4059
查看次数

Cordova/Ionic - 为手机设置仅限肖像模式,并允许在平板电脑中定位

我们如何将手机设置为仅限肖像并允许平板电脑在纵向和横向之间切换?

我正在使用Ionic/Cordova.

目前我已配置使用以下属性在config.xml中将应用程序设置为纵向模式

 <preference name="orientation" value="portrait" />
Run Code Online (Sandbox Code Playgroud)

device-orientation android-orientation cordova ionic

6
推荐指数
1
解决办法
1895
查看次数

在应用程序计费 - 快速设备方向 - 导致崩溃(IllegalStateException)

我根据Android的实施应用内结算指南实施了应用内结算(v3).

一切正常,直到我旋转设备,然后立即将其旋转回原来的方向.实际上,有时它会起作用,有时会崩溃:

java.lang.IllegalStateException: IabHelper was disposed of, so it cannot be used.

似乎这与IAB的异步性质有关,尽管我并不积极.

有什么想法吗?

android device-orientation illegalstateexception in-app-billing

5
推荐指数
1
解决办法
1239
查看次数

接口方向和设备方向之间的区别?

接口方向和设备方向有什么区别?两者看起来都一样,但它们之间的实际区别是什么?

interface-orientation device-orientation ios

5
推荐指数
1
解决办法
1878
查看次数

如何使用 CoreMotion 在空间中获取设备方向

我在这里有一个思考和搜索问题,但找不到好的方向……我希望开发一种算法,通过使用设备运动在 360 度图像(球状)中移动。

因此,如果用户将设备指向他面前,他将获得图像的确定原点。当他在他周围移动设备时,全景图像会随之移动。

我可以研究任何想法或来源?

感谢并祝所有使用 Swift 的人好运 :)

objective-c motion device-orientation ios core-motion

5
推荐指数
1
解决办法
4073
查看次数

UIInterfaceOrientationUnknown 用于什么目的

在 iOS 8 中,他们添加了设备方向检测UIInterfaceOrientationUnknown(在此处查看预发布文档)

  • UIInterfaceOrientationUnknown

    无法确定设备的方向。

    在 iOS 8.0 及更高版本中可用。

typedef enum : NSInteger { 
    UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown, 
    UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait, 
    UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown, 
    UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight, 
    UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft 
} UIInterfaceOrientation; 
Run Code Online (Sandbox Code Playgroud)

我看到它的方式,只有4种方式的装置可能可能去过PortraitUpsideDownLandscapeRightLandscapeLeft。那么在什么情况下你会遇到未知的设备方向?

objective-c device-orientation ios8

5
推荐指数
1
解决办法
948
查看次数

Android - CameraDevice 已关闭

我一直在尝试将 Camera2 api 集成到我的应用程序中。当我从纵向模式切换到横向模式时,它会引发异常

    java.lang.IllegalStateException: CameraDevice was already closed
at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:1984)
at android.hardware.camera2.impl.CameraDeviceImpl.submitCaptureRequest(CameraDeviceImpl.java:825)
at android.hardware.camera2.impl.CameraDeviceImpl.setRepeatingRequest(CameraDeviceImpl.java:880)
at android.hardware.camera2.impl.CameraCaptureSessionImpl.setRepeatingRequest(CameraCaptureSessionImpl.java:231)
at com.essentialsln.memtalk.ui.fragments.Camera2Fragment$11.onConfigured(Camera2Fragment.java:795)
at java.lang.reflect.Method.invoke(Native Method)
at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39)
at android.hardware.camera2.dispatch.HandlerDispatcher$1.run(HandlerDispatcher.java:65)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)

android device-orientation android-camera2

5
推荐指数
1
解决办法
2676
查看次数

绝对设备方向

我正在尝试读取绝对的DeviceOrientation事件值以创建HTML5罗盘移动Web应用程序。

如果使用此代码,则可以毫无问题地获取alpha,beta和gamma值:

window.addEventListener('deviceorientation', function(event) {
          alpha = event.alpha;
          beta = event.beta;
          gamma = event.gamma;
  });
Run Code Online (Sandbox Code Playgroud)

但是,这些值对我没有帮助,因为我需要获取绝对值才能找到North的确切位置等。我找到了这篇文章,其中解释了如何使用event的绝对值。

当我将代码更改为此:

window.addEventListener('deviceorientationabsolute', function(event) {
    alpha = event.alpha;
    beta = event.beta;
    gamma = event.gamma;
    var absolute = event.absolute;
});
Run Code Online (Sandbox Code Playgroud)

Alpha,Beta和Gamma值设置为null。这对我来说很奇怪,因为event.absolute值设置为true。据此,应该显示事件值。

任何人有或有任何类似的问题?任何帮助,将不胜感激; 另外,如果有HTML5 Compass App的一些实用示例,将其发布在此处会很有帮助。

先感谢您!

html5 event-handling motion device-orientation compass

5
推荐指数
1
解决办法
577
查看次数

iOS 12.2:即使在设置中手动启用后,设备方向数据仍然被阻止

在 iOS 12.2 中,Apple 默认阻止访问设备方向数据。这必须现在手动启用(-__-),如解释在这里

问题是,即使在设置中启用“运动和方向访问”后,当我尝试在 deviceorientation 事件上设置侦听器时,我还是在 Safari 调试器上收到此警告消息:

function onDeviceOrientationChange (e) {
    console.log(e)
}

window.addEventListener("deviceorientation", onDeviceOrientationChange, false);

// ---> Blocked attempt to add a device motion or orientation listener because the browsing context is not secure.
Run Code Online (Sandbox Code Playgroud)

我正在webpack dev server开发。我怎样才能像以前一样摆脱这个块并访问设备方向数据?

javascript device-orientation ios webpack webpack-dev-server

5
推荐指数
1
解决办法
1438
查看次数

javascript 事件的设备方向未在 chrome android 中触发

  1. 我正在尝试触发 javascript 的 deviceorientation 事件,但事件未在我的 android 设备中触发。 请在此处查看活动文档 这是我在 Chrome 桌面传感器中尝试过的,效果很好
window.addEventListener('deviceorientation', function(event) {
  console.log(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
});
Run Code Online (Sandbox Code Playgroud)
  1. 它在 chrome 桌面上运行良好,并且事件被触发。(谷歌浏览器 -> 检查 -> 自定义和控制 devTools -> 更多工具 -> 传感器 -> 方向(打开它并旋转虚拟设备)。

3.但是,如果我从任何 android 设备事件中打开此链接,则无法正常工作。我看不到任何控制台日志或警报..是否需要任何额外的设置才能从 android 获取方向详细信息..

任何形式的帮助表示赞赏。

javascript device-orientation three.js

5
推荐指数
1
解决办法
6108
查看次数