防止在某些设备上更改Android方向

Zyg*_*yga 5 layout android orientation

我知道您可以限制Android应用程序清单文件中的方向更改,但我想知道是否有办法根据设备类型/大小进行操作.

我想在小型/中型手机上使用它,但允许在大型手机/平板电脑上使用.

实现这一目标的最佳方法是什么?任何帮助将非常感激.

Sid*_*ele 6

为此,我认为你需要将两件事合二为一.

  1. 首先,获取设备屏幕大小
  2. 然后,根据结果,启用或禁用方向.

第一部分:

int screenSize = getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK;

switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();
        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        Toast.makeText(this, "Normal screen",Toast.LENGTH_LONG).show();
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        Toast.makeText(this, "Small screen",Toast.LENGTH_LONG).show();
        break;
    default:
        Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)

图片来源:https://stackoverflow.com/a/11252278/450534(解决方案随时可用)

最后,根据上面代码的结果,这些中的任何一个:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Run Code Online (Sandbox Code Playgroud)

要么

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Run Code Online (Sandbox Code Playgroud)

  • @Pragnani:适当的信用它应该到期呃.不能声称什么不是我的;-) (2认同)