Android:屏幕小于x时禁用屏幕旋转

时间:2011-09-11 12:08:32

标签: android cordova rotation screen-size

当屏幕小于(例如)480px时,任何人都知道如何在我的Android应用中禁用屏幕旋转? 我正在构建使用phonegap的应用程序,它将针对平板电脑设备,但它也可以在智能手机上运行。不幸的是,当横向显示app时,应用程序才能正确显示...

3 个答案:

答案 0 :(得分:4)

可能是'if'控制

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

onCreate函数中的

答案 1 :(得分:4)

做到了! :)

以下是(自我解释):

int width;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html");
    Display display = getWindowManager().getDefaultDisplay(); 
    width = display.getWidth();
    if(width <= 480) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

}


@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if(width <= 480) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}'

并且进口很少:

import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.view.Display;'

答案 2 :(得分:0)

将@Howard Hodson的解决方案与此线程How to determine device screen size category (small, normal, large, xlarge) using code?

结合起来

我使用此代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    disableLandscapeInSmallDevices();
}

private void disableLandscapeInSmallDevices() {
    if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}