使Android应用程序仅在移动设备中以纵向模式运行的首页,而在平板电脑中,它既可以纵向也可以横向显示?在此先感谢
首先在您的活动或slpash屏幕中检查应用程序必须在哪个设备上运行。
将下面的代码检查到您的mainActivity或初始屏幕。
Intent intent;
if (isTablet(DeciderActivity.this))
{
// for Tablet
intent = new Intent(this, TabletSplashActivity.class);
startActivity(intent);
}
else
{
// for Phone
intent = new Intent(this, PhoneSplashActivity.class);
startActivity(intent);
}
请声明isTablet方法
public static boolean isTablet(Activity activity) {
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
float yInches = metrics.heightPixels / metrics.ydpi;
float xInches = metrics.widthPixels / metrics.xdpi;
double diagonalInches = Math.sqrt(xInches * xInches + yInches * yInches);
if (diagonalInches >= 7) {
// 7inch device or bigger
return true;
} else {
// smaller device
return false;
}
}
我希望这对您有用,我的代码可以正常工作。
在清单中,为您的所有活动设置此:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
让我解释一下:
android:configChanges="orientation"
,您告诉Android您将负责方向的更改。android:screenOrientation="portrait"
,您设置了默认的方向模式。如果设备是电话,则可以通过Activity的onCreate方法调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
。要确定该设备是电话还是平板电脑,请查看this question。