【问题标题】:Detecting orientation like in camera app像在相机应用程序中一样检测方向
【发布时间】:2013-12-31 10:23:43
【问题描述】:

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

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"

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

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

【问题讨论】:

  • 您可以通过比较设备的宽度和高度来尝试这个,如果有变化您可以旋转图标..

标签: android android-orientation


【解决方案1】:

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

现在尝试手动设置方向:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

【讨论】:

  • 嗨,谢谢,但我不想改变方向,只是想知道。
  • @DanM 这就是它的作用。您将收到通知更改事件,而您的方向不会改变。
  • 你能举个例子吗,如何在代码中使用它以及如何添加监听器?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多