2011-03-21 5 views
4

배치에 대한보기 크기 계산을 수행하는 것이 눈살을 찌푸리게합니다. Android 레이아웃 관리자는 모든보기를 올바르게 배치해야합니다. 그러나 힌트 (예 : GridView 의 열 수 또는 한 줄에 최소 문자 수가 표시되도록 텍스트보기 크기 조정)를 제공하기 위해 일종의 계산 을 수행해야하는 합법적 인 경우가 있습니다. 이러한 경우 관련 너비/높이 정보 또는 글꼴 너비/높이/등을 얻고 싶습니다. 그러나 뷰가 디스플레이에 렌더링되었지만 늦은 경우가 아니라면 getWidth()/getHeigth()/etc 호출은 유효한 값 을 반환하지 않습니다. 잡기 22 상황입니다. 내가 찾지 못한 몇 가지 방법이 있는지 궁금해합니다. (안드로이드 API가 크고 내 마음을 모두 이해할 수 있습니다.) 위에서 설명한 내용이 가능합니다.첫 번째 표시 전에보기 너비/높이 또는 글꼴 너비/높이/다른 크기 가져 오기

답변

5

그래 내가 제안을 시험하고 작동보세요!

샘플 코드.

Display display = getWindowManager().getDefaultDisplay(); 
View s = findViewById(R.id.Screen); // Screen is a container layout 
s.measure(display.getWidth(), display.getHeight()); 
View c = findViewById(R.id.Cell0); 
Log.i(TAG, "cell width = " + String.valueOf(c.getMeasuredWidth()) 
    + " height = " + String.valueOf(c.getMeasuredHeight())); 

내가 어떻게 이것을 놓쳤는지는 모르겠다. :) 측정 프로세스에 대해 모두 알고 있었지만 사용자 정의보기에서 의 사용을 고수했습니다 ...

+0

'표시'는 어디에서 왔습니까? –

관련 문제