像相机应用一样检测方向

3

我正在开发一个类似相机的应用程序,我希望应用程序始终处于横屏模式,我可以通过以下方式实现:

android:screenOrientation="portrait"

但我需要知道用户何时将手机旋转到横屏模式,以便我可以将图标旋转90度。

我尝试过:

   if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) 
    {
        Toast.makeText(getApplicationContext(), "ORIENTATION_LANDSCAPE", Toast.LENGTH_SHORT).show();

    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){

        Toast.makeText(getApplicationContext(), "ORIENTATION_PORTRAIT", Toast.LENGTH_SHORT).show();
    }

但仅当我添加以下内容时才有效:
android:configChanges="keyboardHidden|orientation|screenSize"

它还可以自动更改我的屏幕方向。

那么,如何让我的应用程序一直保持横屏模式,并仅在手机处于竖屏时进行检测,而不会自动更改任何内容?就像相机应用程序一样。


你可以通过比较设备的宽度和高度来尝试这个功能,如果有变化,就可以旋转图标。 - Kanak Sony
2个回答

1

使用 android:configChanges="keyboardHidden|orientation|screenSize" 是一个好主意。

现在尝试手动设置你的方向:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

嗨,谢谢你,但我不想改变方向,只是想知道它。 - Dim
@DanM 这就是它的作用。当您的方向不改变时,您将收到通知更改事件。 - Ilya Gazman
你能给我一个例子,如何在代码中使用它以及如何添加监听器吗? - Dim

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接