如果我的活动中有固定的方向,如何获取设备的方向?

时间:2016-01-05 10:29:04

标签: android orientation

我的活动在Portrait中有固定的方向,我希望它保持纵向。 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

活动做出响应是没有意义的。

我的问题:我在应用程序中有一个包含textView的片段。 我希望片段能够响应,以便用户可以阅读文本。

我试图从onConfigurationChanged Methode获取方向,但是在我转动设备时没有调用它,因为它始终保持纵向。

现在我想弄清楚我的设备的方向,然后设置片段的动画来转动它。但是我没有找到一种方法来获取我的设备的方向,而只是我的一个活动。

我还尝试使用不同于活动方向的方法设置片段方向但不起作用(方向始终与活动方向相同。)。

现在我真的不知道该怎么办了。 有没有人知道我如何能够独立于活动的方向获得设备的方向? - >或者还有其他想法如何解决我的问题?

2 个答案:

答案 0 :(得分:0)

您可以直接阅读Android传感器以确定方向:Sensors Overview

希望这有帮助

(但我真的无法理解为什么你不想在不旋转活动的情况下这样做。)

答案 1 :(得分:0)

您可以使用OrientationEventListener获取方向角度值。

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

            @Override
            public void onOrientationChanged(int orientation) {
                Log.d(tag, "Orientation = "+orientation);
            }
        };

        listener.enable();

根据方向值,您可以确定设备的方向。