ステータスバーとソフトキーボタンバーの高さを取得するにはどうすればよいですか?

Joske369

Androidでソフトボタンバーとステータスバーのサイズを一緒に取得する方法はありますか?または、これら両方のバーの高さなしで画面の高さを取得する方法はありますか?(それらは常に同じではありません。たとえば、ネクサス7を見てください)

エイドリアンシドアルマゲール

ステータスバーの高さ

ステータスバーの高さを有するデバイスでは、例えば、画面サイズに依存240 X 320ステータスバーの高さは、画面サイズ20ピクセルを有するデバイスのために、320×480の画面サイズは、ステータスバーの高さは25ピクセルを有するデバイスのために、480 x800ステータスバーの高さは38pxである必要があります

したがって、このスクリプトを使用してステータスバーの高さを取得することをお勧めします

Rect rectangle = new Rect();
Window window = getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
int statusBarHeight = rectangle.top;
int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int titleBarHeight= contentViewTop - statusBarHeight;

Log.i("*** Value :: ", "StatusBar Height= " + statusBarHeight + " , TitleBar Height = " + titleBarHeight); 

onCreate()アクティビティメソッドでステータスバーの高さを取得するには、次のメソッドを使用します。

public int getStatusBarHeight() { 
      int result = 0;
      int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
      if (resourceId > 0) {
          result = getResources().getDimensionPixelSize(resourceId);
      } 
      return result;
} 

ソフトキーボタンバー

この方法は、Android KitKat(4.4)でレイアウトのパディングを設定するのに非常に便利です。これを使用すると、ソフトボタンバーがレイアウト上で重なるのを防ぐことができます。

このgetRealMetricsメソッドは、API17および+でのみ使用できます。

@SuppressLint("NewApi")
private int getSoftButtonsBarHeight() {
    // getRealMetrics is only available with API 17 and +
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int usableHeight = metrics.heightPixels;
        getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
        int realHeight = metrics.heightPixels;
        if (realHeight > usableHeight)
            return realHeight - usableHeight;
        else
            return 0;
    }
    return 0;
}

参照:

Androidのステータスバーの高さ

ソフトボタンバーの寸法

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スマートフィルターバーで入力ボックスの高さを設定するにはどうすればよいですか?

分類Dev

ツールバーの画像ボタンとテキストビューを中央に表示するにはどうすればよいですか?

分類Dev

RingCentralソフトフォンに表示されているユーザーのステータスを取得するにはどうすればよいですか?

分類Dev

ボタンをクリックして入力にフォーカスしたときに、USB HIDデバイスが接続されたWebビューにソフトキーボードを表示するにはどうすればよいですか?

分類Dev

アクションバーのホームボタンをエスプレッソでテストするにはどうすればよいですか?

分類Dev

背景がテキストとともに広がるフラッターのキャンバス上で、カスタム編集可能なテキストボックスを作成するにはどうすればよいですか?

分類Dev

ステータスバーメニューとして使用されるNSMenuにボタンを追加するにはどうすればよいですか?

分類Dev

フレックスボックスを使用して、上にオーバーフローすることなく、固定高さのdivのテキストを垂直方向に中央揃えにするにはどうすればよいですか?

分類Dev

xamarin.formsでステータスバーの高さを取得するにはどうすればよいですか?

分類Dev

キャンバスにホバーボタンを作成するにはどうすればよいですか?

分類Dev

スペースバーまたはEnterキーを押してもボタンがトリガーされないように、ボタンからフォーカスを削除するにはどうすればよいですか?

分類Dev

カスタムボイスノートを特定のキーセットにキーバインドするにはどうすればよいですか?

分類Dev

新しいツールバーでアクションオーバーフローメニューのテキストの色を変更せずに、タイトルのテキストとボタンの色を変更するにはどうすればよいですか?

分類Dev

CSSグリッドレイアウトを使用して、スティッキーヘッダーとフッターを持つコンテンツのスクロールバーを取得するにはどうすればよいですか?

分類Dev

Xamarinフォームでテキストの色のステータスバーを変更するにはどうすればよいですか?

分類Dev

グローバルタイプのコンテキスト変数をフラッターで作成するにはどうすればよいですか?

分類Dev

テキストコントローラーの入力をdoubleとして取得するにはどうすればよいですか?-フラッター

分類Dev

ツールバーボタンのテキストを変更するにはどうすればよいですか?

分類Dev

データベースサーバーのパフォーマンステストにJMeterを使用するにはどうすればよいですか?

分類Dev

クラステンプレートのメンバーとしてファンクターを使用するにはどうすればよいですか?

分類Dev

古いアプリのステータスバーのフォントサイズをiOS10のシステムステータスバーと一致させるにはどうすればよいですか?

分類Dev

フラッター-カードのテキストオーバーフローを修正するにはどうすればよいですか?

分類Dev

コールバックのボタンのテキストを変更するにはどうすればよいですか?(アンドロイド)

分類Dev

ボタンのカラーテキストを変更するにはどうすればよいですか?

分類Dev

エディットテキストの下のテキストビュー/カウンターを非表示にしないようにソフトキーボードを強制するにはどうすればよいですか?

分類Dev

タイトルバーの高さなしでElectronウィンドウの高さを取得するにはどうすればよいですか?

分類Dev

Vaadinのテキストフィールドにリアルタイムバリデーターを作成するにはどうすればよいですか?

分類Dev

reactjsのreturnステートメント内でスクロールバーの高さを設定するにはどうすればよいですか?

分類Dev

コントロールがデータソースにバインドされているときに、コントロールの生の値を取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    スマートフィルターバーで入力ボックスの高さを設定するにはどうすればよいですか?

  2. 2

    ツールバーの画像ボタンとテキストビューを中央に表示するにはどうすればよいですか?

  3. 3

    RingCentralソフトフォンに表示されているユーザーのステータスを取得するにはどうすればよいですか?

  4. 4

    ボタンをクリックして入力にフォーカスしたときに、USB HIDデバイスが接続されたWebビューにソフトキーボードを表示するにはどうすればよいですか?

  5. 5

    アクションバーのホームボタンをエスプレッソでテストするにはどうすればよいですか?

  6. 6

    背景がテキストとともに広がるフラッターのキャンバス上で、カスタム編集可能なテキストボックスを作成するにはどうすればよいですか?

  7. 7

    ステータスバーメニューとして使用されるNSMenuにボタンを追加するにはどうすればよいですか?

  8. 8

    フレックスボックスを使用して、上にオーバーフローすることなく、固定高さのdivのテキストを垂直方向に中央揃えにするにはどうすればよいですか?

  9. 9

    xamarin.formsでステータスバーの高さを取得するにはどうすればよいですか?

  10. 10

    キャンバスにホバーボタンを作成するにはどうすればよいですか?

  11. 11

    スペースバーまたはEnterキーを押してもボタンがトリガーされないように、ボタンからフォーカスを削除するにはどうすればよいですか?

  12. 12

    カスタムボイスノートを特定のキーセットにキーバインドするにはどうすればよいですか?

  13. 13

    新しいツールバーでアクションオーバーフローメニューのテキストの色を変更せずに、タイトルのテキストとボタンの色を変更するにはどうすればよいですか?

  14. 14

    CSSグリッドレイアウトを使用して、スティッキーヘッダーとフッターを持つコンテンツのスクロールバーを取得するにはどうすればよいですか?

  15. 15

    Xamarinフォームでテキストの色のステータスバーを変更するにはどうすればよいですか?

  16. 16

    グローバルタイプのコンテキスト変数をフラッターで作成するにはどうすればよいですか?

  17. 17

    テキストコントローラーの入力をdoubleとして取得するにはどうすればよいですか?-フラッター

  18. 18

    ツールバーボタンのテキストを変更するにはどうすればよいですか?

  19. 19

    データベースサーバーのパフォーマンステストにJMeterを使用するにはどうすればよいですか?

  20. 20

    クラステンプレートのメンバーとしてファンクターを使用するにはどうすればよいですか?

  21. 21

    古いアプリのステータスバーのフォントサイズをiOS10のシステムステータスバーと一致させるにはどうすればよいですか?

  22. 22

    フラッター-カードのテキストオーバーフローを修正するにはどうすればよいですか?

  23. 23

    コールバックのボタンのテキストを変更するにはどうすればよいですか?(アンドロイド)

  24. 24

    ボタンのカラーテキストを変更するにはどうすればよいですか?

  25. 25

    エディットテキストの下のテキストビュー/カウンターを非表示にしないようにソフトキーボードを強制するにはどうすればよいですか?

  26. 26

    タイトルバーの高さなしでElectronウィンドウの高さを取得するにはどうすればよいですか?

  27. 27

    Vaadinのテキストフィールドにリアルタイムバリデーターを作成するにはどうすればよいですか?

  28. 28

    reactjsのreturnステートメント内でスクロールバーの高さを設定するにはどうすればよいですか?

  29. 29

    コントロールがデータソースにバインドされているときに、コントロールの生の値を取得するにはどうすればよいですか?

ホットタグ

アーカイブ