TextViewやImageViewなど、設置されているViewのサイズを取得したいとき


画面全体とかじゃなく、TextViewやImageViewなど、一部の要素の大きさを取得します。

onCreate()の中で取得しちゃうと0になってしまいます。

 

これだとwidth=0になる

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.lo_main);

	Button icon_bt = (Button)findViewById(R.id.icon_bt);
	int width = icon_bt.getWidth();
}

ただしく取得するにはこっちで

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

	Button icon_bt = (Button)findViewById(R.id.icon_bt);
	int width = icon_bt.getWidth();
}	

ただ、このonWindowFocusChanged()はライフサイクル的には

onPause()

onCreate()

onStart()

onResume()

onWindowFocusChanged()

onStop()

の順番に呼ばれるので、Viewのサイズによって動的に処理を変更する場合は注意が必要です。

TextViewやImageViewなど、設置されているViewのサイズを取得したいとき” への1件のコメント
1 Ping/トラックバック のために "TextViewやImageViewなど、設置されているViewのサイズを取得したいとき"
  1. […] 参考: TextViewやImageViewなど、設置されているViewのサイズを取得したいとき [MainActivity.java] […]

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください