안드로이드 개발 질문/답변
(글 수 45,052)
Button btn = (Button)findViewById(R.id.btn);
int h = btn.getHeight();
이렇게 하면 왜 getHeight()가 0인가요?
원래 버튼은 높이를 못가져오나요?
버튼 높이를 가져와서 쓸일이 있는데...
2010.12.03 20:40:18
오늘 심심해서 이걸로 원인 분석을 해봤는데요.. xml 에서 그려지고 혹은 java단에서 만들고 setContentView 로 불려지면..
실제 뷰들을 확장한다고 하지만 onDraw가 불려지지는 않더군요.. 실제 화면에 뿌려지기 바로전에 onDraw가 불려지는데..
소스상에서는 아직 onDraw가 불려지지 않은 상태라서 뷰의 크기를 못가져 옵니다.
따라서 핸들러에게 다시 한번 물어 보는 방법으로 해야 그때서야 제대로 된 값이 들어오는군요..
안펍에서 찾은 소스입니다. 참고하세요~!
mImage = (ImageView) findViewById(R.id.image);
mImage.post(new Runnable(){
@Override
public void run() {
Log.e("DEBUG", "h2: " + mImage.getHeight());
Log.e("DEBUG", "w2: " + mImage.getWidth());
}
});
Log.i("Test" , ""+ v.getWidth());