[Android] Layoutの指定領域を取得する

レイアウトの領域を取得する方法の書き残し。

–方法–
取得の仕方は簡単で以下のActivity#onWindowFocusChangedメソッドの中で
//=================================================
@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    //------------------------------------
    // ここ
    //------------------------------------
    LinearLayout Layout = (LinearLayout)findViewById(R.id.title);
    int w = Layout.getWidth();    // 幅の取得
    int h = Layout.getHeight();     // 高さの取得}
//=================================================
これだけ見ると領域を取得する部分だけActivity#onCreateメソッドに書けば取得できそうなので書いてみました。
//=================================================
@Override
public void onCreate(Bundle savedInstanceState){  super.onCreate(savedInstanceState);     setContentView(R.layout.main);     ~ 色々と省略 ~     //------------------------------------     // 取得部分     //------------------------------------     LinearLayout Layout = (LinearLayout)findViewById(R.id.title);     int w = Layout.getWidth();    // 幅の取得     int h = Layout.getHeight();     // 高さの取得} //=================================================
結果:
Width = 0
Height = 0
(´゜ж゜`)ぇ。。。
何でだろうと思ったらこんな情報が。
『Layoutの領域を取得する場合、ビューが完全に表示された後でないと取得できない。』らしいですorz
そこで1個前のActivity#onWindowFocusChangedメソッドの登場です。
これはビューが完全に表示された後に呼び出されるメソッドなのでオッケーですね!
ということで実装・実行してみました。
結果:
Width = 600
Height = 160
キター(*´ω`)
無事取得できました。
後は取得した数値を好きに使用しましょう。
以上、Layoutの使用領域の取得でした。
This entry was posted in Android, Java, プログラミング関連, 備忘録 and tagged . Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です