スマートフォンの場合のみ縦固定に設定できるんじゃないかなって方法 – Android

[PR]

Androidアプリでタブレットは縦横対応するけど、スマートフォンは縦固定にしたいActivityがありまんねん!って時の対処法。

参考にさせていただいた記事はこちら

Androidで画面の向きを固定する(回転させない)
1apkでAndroidタブレット向けとスマートフォン向けアプリを実現する方法 その2

タブレットの判定は

public static boolean isHoneycombTablet(Context context) {
	return isHoneycomb() && (context.getResources().getConfiguration().screenLayout
		& Configuration.SCREENLAYOUT_SIZE_MASK)
		 == Configuration.SCREENLAYOUT_SIZE_XLARGE;
}

ActivityをJAVAで縦固定するには

this.setRequestedOrientation((ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

これに上のタブレット判定を合わせて

if (!CheckTablet.isHoneycombTablet(this)) {
	this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);	
}

といった感じで実現できそうです。

参考にさせていただいた記事にあった

  • AndroidManifest.xmlで画面の固定をする方法
  • バージョンがHoneycomb以降かどうかの判定

も、あわせて覚えておきたいですね。