アプリの最初に、縦向きと横向きの画面サイズを把握しようとしています。
を使用して実際の表示サイズを取得しDisplay.getRealSize()
、ナビゲーションバーがある場合はナビゲーションバーの高さを計算できます。
ただし、600dp
以下のデバイスでは、ナビゲーションバーの高さが異なり(向きによって異なります)、横向きモードでは右に移動することもあります。
私のアプリは、開始時にこれらのパラメーターを知る必要があります(アプリは、接続時にこれらのディメンションを受け取るクラウドサーバーに接続されているため、アプリが処理を開始する前に、これらのパラメーターを知る必要があります)。
私の現在の解決策はこれです:
Resources res = Resources.getSystem();
id = res.getIdentifier("navigation_bar_height", "dimen", "android");
int navigation_bar_height = res.getDimensionPixelSize(id);
これは機能しますが、Androidの内部リソースを使用することは決して良い習慣ではありません。
デバイスを回転させる前に、画面の寸法を別の向きで知る方法は他にありますか?