浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Android】Buttonの幅・高さを取得したら0が返却される時の対処方法

今回は Android アプリで、ボタン等の表示されている要素の幅と高さを取得する方法についてです。
最初、.getWindow().getHeight() を使って取得しようとしたのですが、どちらも 0 が返却されてしまいました…。

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

android – How to get height and width of Button – Stack Overflow
https://stackoverflow.com/questions/7750102/how-to-get-height-and-width-of-button

 

こちらの記事によると、.getWindow().getHeight() を使用するのは間違いではないのですが、実行タイミングが早すぎることが原因とのことでした。
そのため、onWindowFocusChanged 関数をオーバーライドして、この中で要素の幅・高さの取得を行えばOKです。

サンプルコードは下記のとおりです。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    // 要素の幅・高さを .getWindow()、.getHeight() を使って取得する
    Button button = findViewById(R.id.button);
    int width = button.getWidth();
    int height = button.getHeight();
}

上記を実行したところ、今度は正常にボタンの幅と高さが取得できました!

 

以上、Android で Button などの要素の幅・高さを取得する方法についてでした。
ご参考になれば幸いです。

  • この記事いいね! (0)