2012-05-30 2 views
-1

내 XML에는 작고 일반적이고 크고 기본 레이아웃 세트가 있습니다.수동으로 레이아웃 세트를 선택 하시겠습니까?

디바이스 자동 선택 레이아웃을 원하지 않지만 디바이스 너비의 해상도에서 기본을 선택하려고합니다.

이것은 나의 manifest.xml

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

방법을 설정하는 것입니다?

+0

가능한 경우 @happydude가 지적한 링크에 설명 된대로 [새 크기 한정자] (http://developer.android.com/guide/practices/screens_support.html#NewQualifiers)를 사용하십시오. 구형 장치의 경우 'small' /'normal' /'large' /'xlarge'식별자를 사용하십시오. 또는, 일부 회사 (예 : Pioneer)가 활동에서'setContentView (...) '를 둘러싼 조건문을 사용하는 것을 보았습니다. 그러나 나는 그 방향으로 들어가지 않을 것을 강력히 권장한다. –

답변

0

프로젝트의 res/ 디렉토리에는 지원하는 각 화면 크기에 대한 레이아웃 폴더가 포함됩니다. 가능한 폴더 이름은 layout-small, layout-normal, layout-largelayout-xlarge입니다. 하나 이상의 화면 크기 폴더를 생략하면 Android는 그 크기보다 작거나 같은 가장 가까운 다음 폴더를 사용하며 캐치로 사용할 수있는 layout이라는 간단히 "기본"폴더를 사용하는 것이 좋습니다 -all (layout-small 대신에 이것을 사용하는 것이 좋습니다). 각 폴더 안에 일반적으로 해당 화면 크기에 특정한 xml 레이아웃 파일을 배치하면 모든 파일의 이름은 정확히 동일합니다 (예 : layout-normal/my_layout.xml, layout-large/my_layout.xml 등).

Activity의 메서드에서 setContentView(R.layout.my_layout)을 호출하면 장치의 화면 크기와 일치하는 폴더에서 올바른 레이아웃이 자동으로 선택됩니다.

Here은 위에서 언급 한 정보를 포함하여 다양한 화면 크기에 맞게 응용 프로그램을 디자인하는 방법을 설명하는 매우 포괄적 인 문서입니다.

+0

사실 나는'padding = 30dp'을 넣었는지 알고 싶다.이 장치는 모든 종류의 화면 크기에 대해 30dp를 자동으로 설정할 것이다. 또는'dp '의 다른 수를 수동으로 설정할 필요가 있습니까? –

+0

DP는 화면 SIZE (길이/너비)와 관련이 없지만 실제로는 DENSITY (개별 픽셀의 작은 크기)를 화면에 표시합니다. 그러나 귀하의 질문에 대한 답변으로 30dp는 크기 또는 밀도에 관계없이 모든 화면 (약 3/16 인치)에 동일하게 나타나며보기에 30dp의 여백을 설정하면 자동으로 모두 작동합니다. – happydude