レイアウトの領域を取得する方法の書き残し。
–方法–
取得の仕方は簡単で以下の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
Height = 160
キター(*´ω`)
無事取得できました。
後は取得した数値を好きに使用しましょう。
以上、Layoutの使用領域の取得でした。