3

すべての Android デバイスをサポートするアプリケーションがあります。

デバイスに基づいて、それが可能かどうかを知りたい:

  • デバイスが電話/ファブレットの場合、画面がポートレート モードかランドスケープ モードかに関係なく、アプリケーションは垂直レイアウトを使用します
  • デバイスがタブレットの場合、画面がポートレート モードかランドスケープ モードかに関係なく、アプリケーションはランドスケープ レイアウトを使用します

したがって、アプリケーションは、携帯電話では縦方向に表示され (ポートレート モードまたはランドスケープ モードに関係なく)、タブレットでは横方向に表示されます (ポートレート モードまたはランドスケープ モードに関係なく)。

次のコード行を使用すると、アプリケーションは常に縦向きに表示されます。モバイルでは機能しますが、タブレットでは機能しません。

android:screenOrientation = "portrait"
android:configChanges="keyboard|keyboardHidden|orientation"

デバイスが電話/ファブレットの場合は縦型デザインを使用し、デバイスがタブレットの場合は横型デザインを使用するアプリケーションを強制したい。

私の説明が明確であることを願っています。任意の提案をいただければ幸いです。ありがとう。

4

2 に答える 2

0

最初にデバイスの画面サイズを取得するこの方法を試すことができると思います

if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {     
    Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();

}
else if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {     
    Toast.makeText(this, "Normal sized screen" , Toast.LENGTH_LONG).show();

} 
else if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {     
    Toast.makeText(this, "Small sized screen" , Toast.LENGTH_LONG).show();
}
else {
    Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
}

そして、このように向きを設定します

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
于 2013-09-27T07:37:52.923 に答える