2012-09-05 4 views

답변

1

예 글쎄, 내가 조언을하지 않을하지만, 화면의 크기를 찾은 다음 코드에서 직접 치수 파악 수학 할 수있는 :

Display display = this.getActivity().getWindowManager().getDefaultDisplay(); 
     int w = display.getWidth(); 
     int h = display.getWidth(); 

그렇지 않으면 당신은 단지 수를 일반적인 방법으로하십시오 :

LinearLayout ll = (findViewById) ... 
int whatever = ll.getWhatever(); 

그런 이유로 피하는 특별한 이유가 있습니까? 솔루션을 찾을 수 있습니다

+0

나는 [화면보다 큰 사용자 정의 레이아웃]을 만들려고 노력하고 있습니다. (http://stackoverflow.com/questions/12130999/how-to-make-a-dynamic-layout-that- 크기가 화면보다 큽니다.) 또한 변수 및 _changing_ 차원이 있습니다. 항목이 확장되거나 축소 될 때마다 크기가 매번 다시 계산되어야합니다. 이를 최적화하기 위해 항목을 렌더링하기 전에 처음부터 몇 가지 치수를 찾고 싶습니다. 물론 첫 번째 항목이 화면에 표시 될 때까지이 작업을 지연 한 다음 항목에 값을 요청할 수도 있지만 약간보기는 어렵습니다. 리소스로부터 가치를 얻는 것이 훨씬 더 우아 해 보입니다. –

+0

"재래식"방법이 유일한 방법 인만큼 유감스럽게 생각합니다. UI 스레드의로드 측면에서별로 생각하지 않습니다. 그렇지 않으면 항상 새로운 스레드를 만들 수 있습니다. –

+0

당신의 대답은 그 것들을 설명하지는 않지만, 당신이 제안한 방법 만이 가능하기 때문에 일반적으로 정확합니다. 그리고 내 설명은 다음과 같습니다. 레이아웃 자체는 실제 치수를 가진 객체로 존재하지 않으므로 뷰가 렌더링 될 때까지 뷰를 팽창시켜야합니다. 그런 다음에만 차원을 쿼리 할 수 ​​있습니다. 화면 크기를 얻는 방법은 전체 화면 크기를 제공하지만 때로는 사용 가능한 뷰포트 크기가 필요합니다. 이를 위해 android.view.View.getWindowVisibleDisplayFrame() 사용을 고려하십시오. –

관련 문제