0

我有一个专为平板电脑设计的应用程序。它以纵向模式显示其数据的一种视图,并以横向模式显示不同的数据视图。用户可以随意在两者之间切换。

在较小的“电话”类型设备上,横向太小而无用,但纵向模式仍然可行。我想在较小的设备上强制使用肖像,比如 7 岁以下的任何内容,同时在平板电脑上允许两种模式。

我该怎么做?

4

2 回答 2

1

您应该遵循支持多个屏幕的开发人员指南。然后,您可以使用 sw 限定符来打开物理屏幕尺寸。

于 2013-09-27T23:14:33.877 回答
1

也许 Krylez 是对的,正确的解决方案是做其他事情,但万一你想锁定/释放屏幕方向(我将它与短期运行的 AsyncTasks 一起使用,以避免不得不处理 ProgressDialog)

public class Device {

public static void lockOrientation(Activity activity) {
    Display display = ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int rotation = display.getRotation();
    int tempOrientation = activity.getResources().getConfiguration().orientation;
    int orientation = 0;
    switch(tempOrientation)
    {
    case Configuration.ORIENTATION_LANDSCAPE:
        if(rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90)
            orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
        else
            orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
        break;
    case Configuration.ORIENTATION_PORTRAIT:
        if(rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270)
            orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
        else
            orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
    }
    activity.setRequestedOrientation(orientation);
}





public static void releaseOrientation(Activity activity) {
    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}

}
于 2013-09-27T23:27:48.593 回答