2011-01-25 3 views
1

화면의 절반에 사용자가 데이터를 입력 할 수있는 편집 텍스트 상자가 있고 나머지 절반에 그릴 수있는 캔버스가있는 인터페이스에서 작업하고 있습니다. 사용자 터치를 읽습니다.표면 뷰의 크기와 위치 설정

지금 저는 표면보기를 확장하고 View.Addview를 사용하여 런타임에 레이아웃 (XML은 레이아웃)을 추가하고 있습니다.

내 문제는보기의 크기와 위치를 설정하는 것입니다. 나는 그것이 정사각형이되고 화면의 절반 정도를 차지하고 싶습니다 (풍경). 오른쪽으로 맞추고 세로로 가운데에 정렬하거나 맨 위에 정렬하고 싶습니다.

onMeasure 메서드를 재정 의하여 크기를 설정할 수 있지만 표시 크기를 얻는 방법을 모르므로 설정할 항목을 알지 못합니다.

내가보기를 정렬하는 방법에 대한 아이디어가없는, 내가 ... 많은 행운없이 다양한 레이아웃에 추가 어떤 도움

감사합니다 노력했습니다!

답변

2

같은 질문이 있습니다. 대답을 찾았 니?

나는 그것을 알아 냈다. onlayout()을 수정하기 만하면 다음과 같이 설정하십시오.

View child=getChildAt(0); 
child.layout(100,100,300,300); 

onmeasure()를 터치하지 마십시오.

+0

확인. 그것을 알아 내라. 단지 onlayout()을 수정하고, 다음과 같이 설정합니다 : View child = getChildAt (0); child.layout (100100300300); onmeasure()를 만지지 마십시오. –

+0

내가 속한 답에 귀하의 의견을 말했습니다. – AShelly

1

하지만 난

는 일반적으로 당신이 명시 적으로 레이아웃 구성 요소에없는 표시 크기를 얻을하는 방법을 모르겠어요. 레이아웃 관리자의 의무. 레이아웃 제약 조건을 설정하기 만하면됩니다.

다음은 화면 크기를 얻는 방법입니다.

yourActivity.getWindowManager(). getDefaultDisplay(). getWidth();