【问题标题】:How to listen to screen orientation change when auto-rotate is disabled in Android?在Android中禁用自动旋转时如何收听屏幕方向变化?
【发布时间】:2013-03-28 04:28:02
【问题描述】:

在我的应用程序中,我禁用了自动定位,但我仍然想听听方向更改方法。
我尝试覆盖onConfigurationChanged,但我想当自动旋转被禁用时它不会被调用。
我正在 API 8 上构建。

谢谢

【问题讨论】:

    标签: android autorotate


    【解决方案1】:

    我会看看如何读取加速度计或陀螺仪来做到这一点。我不确定这是否有效,但这就是我开始的方式。这是有关如何使用加速度计数据的链接。

    http://www.techrepublic.com/blog/app-builder/a-quick-tutorial-on-coding-androids-accelerometer/472

    【讨论】:

    • 我想过直接从传感器读取角度,但它似乎太不稳定了,所以即使将手机放在平坦的表面上它也会不断变化,然后我将不得不开始执行计算并添加一些我不想做的阈值/滞后......
    • 这对您有帮助吗? stackoverflow.com/questions/8248274/…
    • 嗯......它可能会完成这项工作,但我更害怕这个应用程序在运行代码时会消耗的内存(它会被称为不间断,因为传感器正在改变所有时间),可能太多了,但我想这是一个选择
    • 请记住,据我所知,所有的android应用程序都限制在32MB内存,只要你不超过这个,你应该没问题。对此我很难说什么,因为我并没有真正了解你在做什么:)
    【解决方案2】:

    我自己在我的应用程序中使用此代码:

        Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
                .getDefaultDisplay();
        int rotation = display.getRotation();
    

    rotation 的值可以如下:横向为 1 或 3,纵向为 0 或 2。

    不过,我不能 100% 确定如果禁用自动旋转,这是否会起作用,但你可以试一试。

    【讨论】:

    • 好吧,这比我想象的要复杂...我在onCreate 方法中使用它,但是由于您禁用了自动定向,因此在屏幕旋转时不会调用它。 .
    猜你喜欢
    • 2015-01-22
    • 2012-07-21
    • 2016-12-05
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2011-03-20
    相关资源
    最近更新 更多