我正在构建一个通用的Android应用程序,其中手机只需支持肖像和平板电脑将支持纵向和横向。这是我的布局结构
布局端口 布局sw600dp端口 布局sw600dp陆
但如果手机处于横向模式,应用程序崩溃,推理资源未找到异常。
答案 0 :(得分:2)
这种方式应该有效:在values-sw600dp boolean.xml文件中定义布尔值。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="tablet">true</bool>
</resources>
在常规值文件夹中定义类似的文件,并将值设置为false:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="tablet">false</bool>
</resources>
把它放在你的onCreate:
boolean tablet = getResources().getBoolean(R.bool.tablet);
if (!tablet)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
答案 1 :(得分:2)
您好,您可以在此活动中以编程方式设置您的方向
if(isTable()){
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else{
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
其中isTablet()
方法
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}// isTablet