タブレットと電話で異なるビューを表示したかったのですが、デバイスのモードを切り替えることができません。タブレットの要件はランドスケープ モードであり、電話の要件はポートレート モードです。AndroidManifest.xml
生成された 1 つの apk ファイルが要件を満たすようにするには、どのような変更を行う必要がありますか?
質問する
605 次
2 に答える
0
あなたの答えについては、以下の行を参照してください
画面サイズを動的に検出し、画面モードをランドスケープまたはポートレート モードに設定します。
プログラムで横向きまたは縦向きモードに設定します。
于 2013-05-17T04:16:31.080 に答える
0
これを行うには、アクティビティで Java コードを使用します
if(isTabletDevice)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
else
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
isTabletDevice コード
public static boolean isTabletDevice(Context activityContext) {
// Verifies if the Generalized Size of the device is XLARGE to be
// considered a Tablet
boolean xlarge = ((activityContext.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_XLARGE);
// If XLarge, checks if the Generalized Density is at least MDPI
// (160dpi)
if (xlarge) {
DisplayMetrics metrics = new DisplayMetrics();
Activity activity = (Activity) activityContext;
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
// MDPI=160, DEFAULT=160, DENSITY_HIGH=240, DENSITY_MEDIUM=160,
// DENSITY_TV=213, DENSITY_XHIGH=320
if (metrics.densityDpi == DisplayMetrics.DENSITY_DEFAULT
|| metrics.densityDpi == DisplayMetrics.DENSITY_HIGH
|| metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM
|| metrics.densityDpi == DisplayMetrics.DENSITY_TV
|| metrics.densityDpi == DisplayMetrics.DENSITY_XHIGH) {
// Yes, this is a tablet!
return true;
}
}
// No, this is not a tablet!
return false;
}
于 2013-05-17T04:18:24.337 に答える