我有一个专为平板电脑设计的应用程序。它以纵向模式显示其数据的一个视图,并以横向显示不同的数据视图。用户可以随意在两者之间切换。
在较小的“手机”型设备上,横向太小而无法使用,但纵向模式仍然可行。我想在较小的设备上强制使用肖像,比如7以下的任何设备,同时在平板电脑上允许这两种模式。
我该怎么做?
答案 0 :(得分:1)
您应该遵循supporting multiple screens的开发人员指南。然后,您可以使用sw限定符来打开物理屏幕大小。
答案 1 :(得分: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);
}
}