我的Android项目有一个小要求。
答案 0 :(得分:1)
您可以按照以下代码检查屏幕尺寸:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
比设定方向:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
答案 1 :(得分:1)
为避免计算屏幕尺寸,您可以改为使用尺寸为
的布尔值values-sw600dp/bools.xml -> <bool name="isTablet">true</bool>
中的
values-sw720dp/bools.xml -> <bool name="isTablet">true</bool>
和简单的values/bools -> <bool name="isTablet">false</bool>
然后在活动中你可以简单地设置
boolean isTablet = getResources().getBoolean(R.bool.isTablet);
if (isTablet) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onCreate(savedInstanceState);
请注意,这仅适用于API level 3.2
及更高版本。
答案 2 :(得分:0)
if (getResources().getDisplayMetrics().widthPixels > getResources().getDisplayMetrics().heightPixels)
{
bLandscape = true;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//initViews_Land();
}
else
{
bLandscape = false;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//initViews_Port();
}
一种方法是使用此代码是您的每个活动。
另一种方法是为手机和平板电脑创建两个不同的项目。上传两个APK(平板电脑APK必须具有更高版本号)并在高级模式下激活它们。 Play商店会根据正在安装的设备自动管理
电话清单:所有活动必须有android:screenOrientation =“sensorPortrait”
...
<compatible-screens>
<screen
android:screenDensity="ldpi"
android:screenSize="small" />
<screen
android:screenDensity="mdpi"
android:screenSize="small" />
<screen
android:screenDensity="mdpi"
android:screenSize="normal" />
<screen
android:screenDensity="hdpi"
android:screenSize="normal" />
<screen
android:screenDensity="mdpi"
android:screenSize="large" />
<screen
android:screenDensity="hdpi"
android:screenSize="large" />
</compatible-screens>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="false" />
...
平板电脑清单:所有活动必须有android:screenOrientation =“sensorLandscape”
...
<compatible-screens>
<screen
android:screenDensity="xhdpi"
android:screenSize="large" />
<screen
android:screenDensity="xhdpi"
android:screenSize="xlarge" />
<screen
android:screenDensity="hdpi"
android:screenSize="xlarge" />
<screen
android:screenDensity="mdpi"
android:screenSize="xlarge" />
</compatible-screens>
<supports-screens
android:anyDensity="true"
android:largeScreens="false"
android:normalScreens="false"
android:resizeable="false"
android:smallScreens="false"
android:xlargeScreens="true" />
...
希望它可以提供帮助