Java 如何在小屏幕布局上禁用横向

Java 如何在小屏幕布局上禁用横向,java,android,layout,landscape,Java,Android,Layout,Landscape,我允许我的应用程序在纵向和横向上进行所有可能的定向(小的正常的大的xlarge),但在小屏幕上测试后,我只是不喜欢它的外观,我试图做的是禁用小布局的横向。有办法做到这一点吗 我所发现的只是清单文件上的更改,但我相信通过重新配置清单,我会将更改应用于所有布局。检查此链接,您可以检查设备类型并根据需要设置方向 最简单的方法是将其放在所有活动的onCreate()方法中(更好的是,将其放在BaseActivity类中,并从中扩展所有活动) 您可以使用此方法检测设备是手机还是平板电脑: private

我允许我的应用程序在纵向和横向上进行所有可能的定向(小的正常的大的xlarge),但在小屏幕上测试后,我只是不喜欢它的外观,我试图做的是禁用小布局的横向。有办法做到这一点吗


我所发现的只是清单文件上的更改,但我相信通过重新配置清单,我会将更改应用于所有布局。

检查此链接,您可以检查设备类型并根据需要设置方向


最简单的方法是将其放在所有活动的
onCreate()
方法中(更好的是,将其放在BaseActivity类中,并从中扩展所有活动)

您可以使用此方法检测设备是手机还是平板电脑:

private boolean isLargeDevice(Context context) {
        int screenLayout = context.getResources().getConfiguration().screenLayout;
        screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK;

        switch (screenLayout) {
        case Configuration.SCREENLAYOUT_SIZE_SMALL:
        case Configuration.SCREENLAYOUT_SIZE_NORMAL:
            return false;
        case Configuration.SCREENLAYOUT_SIZE_LARGE:
        case Configuration.SCREENLAYOUT_SIZE_XLARGE:
            return true;
        default:
            return false;
        }
    }
你可以这样编程

在您的舱单中:

    <activity android:name=".MyActivity"
      android:configChanges="orientation|keyboardHidden"
      android:label="@string/app_name">

或者查看如何检查屏幕大小并进行更改,例如480屏幕大小设备:应用于oncreate方法:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
if(width==480){

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


}

兄弟给你的屏幕宽度,然后我会给你解决方案
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {

     ///check the screen size and change it to potrait
    }
}
Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
if(width==480){

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


}