2012-06-22 3 views
0

나는 앱을 디자인하고 있으며 테이블 레이아웃에 여러 버튼이 표시되어 있습니다. 앱을 테스트 할 장치가 2 대 있습니다. 하나는 삼성 갤럭시 탭 1이고 다른 하나는 삼성 은하계 에이스입니다. 크기 조정을 허용하기 위해 안드로이드 매니페스트 파일에서 다음을 사용했습니다.화면 크기에 따라 위젯 크기를 조정하는 방법은 무엇입니까?

<supports-screens 
android:resizeable="true" 
android:smallScreens="true" 
android:normalScreens="true" 
android:xlargeScreens="true" 
android:anyDensity="true" /> 

모든 버튼은 또한 그들이 디스플레이에 사용 가능한 여분의 빈 공간을 차지 할 수 있습니다

android:layout_weight="1". 

있습니다. 이 탭에서 잘 작동하지만 전화 중 일부 단추 래핑하십시오. 즉 단어 "버튼"이 2 줄에 표시됩니다. 버튼이 어떤 디스플레이에서나 높이를 감싸지 않도록 버튼의 크기를 조정하고 싶습니다. 누군가 이걸 어떻게 달성 할 수 있는지 말해 줄 수 있습니까? 오, 그리고 애플 리케이션은 안드로이드 2.3.3을 위해 개발되었습니다.

+1

로이드를 추가 layout_width = "fill_parent"안드로이드를 :에 layout_weight = "1"의 경우 버튼에 커다란 글씨가 있습니다. 그리고 나서 android : singleLine = "true"를하십시오. –

+0

예. @ ZazGmy 고마워요. –

+0

레이아웃 채우기의 모든보기의 너비를 부모 가중치로 만듭니다. 1. 버튼에 표시 할 텍스트 크기가 단추의 너비보다 크면 두 줄로 감싸줍니다.이 문제를 피하려면 버튼 하나의 라인을 만드십시오. –

답변

2

을 구현하는 두 가지 방법이 있습니다 :

(1) xhdpi에 적합한 크기의 이미지를 넣어은 hdpi에, MDPI 및 LDPI 폴더. 장치는 자동으로 해상도에 따라이 폴더의 이미지를 가져옵니다.

(2) 동적 장치의 해상도를 검출하고이 같이 따라 레이아웃을 설정할 수

DisplayMetrics displayMetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
    switch(displayMetrics.densityDpi){ 
     case DisplayMetrics.DENSITY_LOW: 
      // layout for small devices. 
      break; 
     case DisplayMetrics.DENSITY_MEDIUM: 
      // layout for medium devices. 
      break; 
     case DisplayMetrics.DENSITY_HIGH: 
      // layout for bigger devices. 
      break; 
    } 
+0

나는 이것을 시도하고 돌아올 것입니다. –

관련 문제