像在相机应用程序中检测方向

时间:2013-12-31 10:23:44

标签: android android-orientation

我正在开发类似于相机的应用程序,我希望应用程序将始终处于横向模式,这是我实现的目标:

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"

它也会自动改变我的方向。

那么我怎样才能让我的应用程序始终处于横向模式,并且仅在手机处于纵向状态时检测到该手机没有自动更改任何内容?就像在相机应用程序中一样

2 个答案:

答案 0 :(得分:1)

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

现在尝试手动设置方向:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

答案 1 :(得分:0)

这会有所帮助。它为我做了,我需要做你需要做的事。

https://stackoverflow.com/a/5183690/687245

相关问题