首页 文章

可以知道何时更改屏幕方向但是在清单上强制使用纵向模式?

提问于
浏览
0

欢迎大家

我特别需要我的应用程序 . 我必须强制该应用程序仅在纵向模式下工作,但我需要知道用户何时将手机移至横向模式 . 为什么?因为我正在显示带有纹理图像的opengl视图,当用户将手机位置更改为横向模式时,我必须旋转多边形而不重置活动 . 然后我必须在清单上强制纵向模式,因为我不希望再次调用我的onCreate方法 .

拜托,有人能告诉我如何实现这个目标吗?

我知道如何旋转图像,我只需要知道用户何时将手机移动到横向位置,但是在清单上强制使用肖像 .

我尝试在清单中添加android:screenOrientation =“portrait”,并在清单中的声明中添加android:configChanges =“keyboardHidden | orientation”;然后在我的活动中覆盖onConfigurationChanged() . 但是这样做不行,因为肖像模式是伪造的,那么onConfigurationChanged方法永远不会被调用......

谢谢

3 回答

  • 3

    为什么不使用SensorManager来监控手机旋转90度的时间 . 实际上this也可能有所帮助 .

  • 0

    在清单android:configChanges =“orientation”中使用此属性,这将停止重新创建活动,然后覆盖onConfigurationChange()方法 . 在纵向和横向模式下提供相同的布局 . 当方向发生变化时,将调用该方法,然后根据需要更改图像

  • 0

    不要在清单中设置屏幕方向(android:screenOrientation =“portrait”) . 添加android:configChanges =“keyboardHidden | orientation”,并覆盖你的onConfigurationChanged() . 这样你的onCreate将不会被调用两次 .

    这是onConfigurationChanged的一个例子:

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig); // tem que ter
        if (getResources().getConfiguration().orientation ==  Configuration.ORIENTATION_LANDSCAPE) {
    
        } else 
        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
    
        }
    }
    

相关问题