4

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

4

3 回答 3

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;'
于 2011-10-01T09:28:31.693 回答
4

也许是一个“如果”控制

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

在 onCreate 函数中?

于 2011-09-11T15:13:53.717 回答
0

结合@Howard Hodson 的解决方案和在这个线程中如何使用代码确定设备屏幕尺寸类别(小、正常、大、xlarge)?

我使用这段代码:

@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);
    }
}
于 2013-08-21T13:44:00.293 回答