今回は 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 などの要素の幅・高さを取得する方法についてでした。
ご参考になれば幸いです。