예를 들어 아래의 dimens.xml 값을 사용했습니다.
다른 값 폴더에서 텍스트 크기 값을 변경해야합니다.
Android 3.0을 실행하는 1 세대 태블릿의 경우 태블릿 레이아웃을 선언하는 적절한 방법은 xlarge 구성 한정자가있는 디렉터리에 배치하는 것입니다 (예 : res / layout-xlarge /). 다른 유형의 태블릿 및 화면 크기 (특히 7 인치 태블릿)를 수용하기 위해 Android 3.2는보다 개별적인 화면 크기에 대한 리소스를 지정하는 새로운 방법을 도입했습니다. 새로운 기술은 레이아웃에 필요한 공간 (예 : 600dp 너비), 일반화 된 크기 그룹 (예 : large 또는 xlarge)에 맞게 레이아웃을 만들려고합니다.
일반화 된 크기 그룹을 사용할 때 7 "태블릿 용으로 설계하는 것이 까다로운 이유는 7"태블릿이 기술적으로 5 "핸드셋 (대규모 그룹)과 동일한 그룹에 속하기 때문입니다.이 두 장치는 크기가 서로 비슷해 보입니다. , 사용자 상호 작용 스타일과 마찬가지로 애플리케이션 UI 공간의 양이 크게 다릅니다. 따라서 7 인치 및 5 인치 화면이 항상 동일한 레이아웃을 사용해서는 안됩니다. 이러한 레이아웃에 대해 다른 레이아웃을 제공 할 수 있도록하려면 두 종류의 화면, Android에서는 이제 dp 단위로 지정된 애플리케이션의 레이아웃에 실제로 사용할 수있는 너비 및 / 또는 높이를 기반으로 레이아웃 리소스를 지정할 수 있습니다.
예를 들어 태블릿 스타일 기기에 사용할 레이아웃을 디자인 한 후 화면 너비가 600dp 미만일 때 레이아웃이 제대로 작동하지 않는지 확인할 수 있습니다. 따라서이 임계 값은 태블릿 레이아웃에 필요한 최소 크기가됩니다. 따라서 이제 애플리케이션 UI에 사용할 수있는 너비가 600dp 이상인 경우에만 이러한 레이아웃 리소스를 사용하도록 지정할 수 있습니다.
너비와 디자인을 최소 크기로 선택하거나 레이아웃이 완료되면 지원하는 가장 작은 너비를 테스트해야합니다.
참고 : 이러한 새로운 크기 API와 함께 사용되는 모든 수치는 밀도 독립적 픽셀 (dp) 값이며 레이아웃 크기도 항상 dp 단위를 사용하여 정의해야합니다. 관심은 시스템 이후에 사용할 수있는 화면 공간의 양이기 때문입니다. 화면 밀도를 고려합니다 (원시 픽셀 해상도 사용과 반대). 밀도 독립 픽셀에 대한 자세한 내용은이 문서 앞부분의 용어 및 개념을 참조하십시오. 새로운 크기 한정자 사용
레이아웃에 사용할 수있는 공간을 기반으로 지정할 수있는 다양한 리소스 구성이 표 2에 요약되어 있습니다. 이러한 새로운 한정자는 기존 화면 크기 그룹 (소형, 일반, 일반)과 비교하여 애플리케이션이 지원하는 특정 화면 크기를 더 잘 제어 할 수 있도록합니다. large 및 xlarge).
참고 : 이러한 한정자를 사용하여 지정하는 크기는 실제 화면 크기가 아닙니다. 오히려 크기는 활동 창에서 사용할 수있는 dp 단위의 너비 또는 높이입니다. Android 시스템은 시스템 UI에 일부 화면 (예 : 화면 하단의 시스템 표시 줄 또는 상단의 상태 표시 줄)을 사용할 수 있으므로 일부 화면을 레이아웃에 사용하지 못할 수 있습니다. 따라서 선언하는 크기는 특히 활동에 필요한 크기에 관한 것이어야합니다. 시스템은 레이아웃에 제공하는 공간을 선언 할 때 시스템 UI에서 사용하는 모든 공간을 고려합니다. 또한 작업 표시 줄은 레이아웃이 선언하지 않더라도 응용 프로그램 창 공간의 일부로 간주되므로 레이아웃에 사용할 수있는 공간이 줄어들고 디자인에서이를 고려해야합니다.
표 2. 화면 크기에 대한 새로운 구성 한정자 (Android 3.2에 도입 됨). 화면 구성 한정자 값 설명 smallestWidth swdp
예 : sw600dp sw720dp
사용 가능한 화면 영역의 가장 짧은 치수로 표시되는 화면의 기본 크기입니다. 특히 기기의 smallestWidth는 화면에서 사용할 수있는 높이와 너비 중 가장 짧은 값입니다 (화면의 '가능한 가장 작은 너비'라고 생각할 수도 있습니다). 이 한정자를 사용하여 화면의 현재 방향에 관계없이 응용 프로그램의 UI에 사용할 수있는 너비가 dps 이상인지 확인할 수 있습니다.
예를 들어 레이아웃에서 화면 영역의 최소 크기가 항상 600dp 이상이어야하는 경우이 한정자를 사용하여 레이아웃 리소스 res / layout-sw600dp /를 만들 수 있습니다. 시스템은 600dp면이 사용자가 인식하는 높이인지 너비인지에 관계없이 사용 가능한 화면의 최소 크기가 600dp 이상인 경우에만 이러한 리소스를 사용합니다. smallestWidth는 장치의 고정 된 화면 크기 특성입니다. 기기의 smallestWidth는 화면 방향이 변경 될 때 변경되지 않습니다.
기기의 smallestWidth는 화면 장식 및 시스템 UI를 고려합니다. 예를 들어 기기에 smallestWidth 축을 따라 공간을 차지하는 영구적 인 UI 요소가 화면에있는 경우 시스템은 smallestWidth를 실제 화면 크기보다 작게 선언합니다. 이는 UI에서 사용할 수없는 화면 픽셀이기 때문입니다.
이는 UI에 사용할 수있는 유효 크기에 대한 불연속적인 숫자를 정의 할 수있는 일반화 된 화면 크기 한정자 (작은, 보통, 큰, xlarge)의 대안입니다. 일반적인 화면 크기를 결정하기 위해 smallestWidth를 사용하는 것이 유용합니다. 너비는 종종 레이아웃을 디자인 할 때 동인 요소이기 때문입니다. UI는 종종 수직으로 스크롤되지만 수평으로 필요한 최소 공간에 상당히 엄격한 제약이 있습니다. 사용 가능한 너비는 핸드셋에 대해 단일 창 레이아웃을 사용할지 태블릿에 대해 다중 창 레이아웃을 사용할지 결정하는 주요 요소입니다. 따라서 각 장치에서 가능한 가장 작은 너비가 무엇인지에 가장 관심을 가질 것입니다. 사용 가능한 화면 너비 wdp
예 : w720dp w1024dp
리소스를 사용해야하는 최소 사용 가능한 너비를 값으로 정의하여 dp 단위로 지정합니다. UI에 사용할 수있는 현재 실제 너비를 반영하기 위해 화면의 방향이 가로와 세로 사이에서 전환 될 때 너비에 대한 시스템의 해당 값이 변경됩니다.
태블릿 장치에서도 가로 방향과 동일한 다중 창 레이아웃을 세로 방향으로 원하지 않기 때문에 다중 창 레이아웃을 사용할지 여부를 결정하는 데 유용합니다. 따라서 화면 크기와 방향 한정자를 함께 사용하는 대신이를 사용하여 레이아웃에 필요한 최소 너비를 지정할 수 있습니다. 사용 가능한 화면 높이 hdp
예 : h720dp h1024dp 등
리소스를 사용해야하는 최소 화면 높이 (값으로 정의 됨)를 dp 단위로 지정합니다. UI에 사용할 수있는 현재 실제 높이를 반영하기 위해 화면 방향이 가로와 세로 사이에서 전환 될 때 높이에 대한 시스템의 해당 값이 변경됩니다.
이를 사용하여 레이아웃에 필요한 높이를 정의하는 것은 화면 크기와 방향 한정자를 모두 사용하는 대신 wdp가 필요한 너비를 정의하는 것과 같은 방식으로 유용합니다. 그러나 대부분의 앱은 UI가 종종 세로로 스크롤되므로 사용 가능한 높이에 따라 더 유연하지만 너비는 더 엄격하다는 점을 고려할 때이 한정자가 필요하지 않습니다.
이러한 한정자를 사용하는 것은 화면 크기 그룹을 사용하는 것보다 더 복잡해 보일 수 있지만 실제로는 UI에 대한 요구 사항을 결정하면 더 간단해야합니다. UI를 디자인 할 때 가장 중요한 것은 애플리케이션이 핸드셋 스타일 UI와 여러 창을 사용하는 태블릿 스타일 UI간에 전환하는 실제 크기입니다. 이 스위치의 정확한 지점은 특정 디자인에 따라 다릅니다. 태블릿 레이아웃에 720dp 너비가 필요할 수도 있고, 600dp이면 충분하거나, 480dp이거나,이 사이의 숫자가 필요할 수도 있습니다. 표 2에서 이러한 한정자를 사용하여 레이아웃이 변경되는 정확한 크기를 제어 할 수 있습니다.
이러한 크기 구성 한정자에 대한 자세한 내용은 리소스 제공 문서를 참조하세요. 구성 예
다양한 유형의 장치에 대한 일부 디자인을 대상으로하는 데 도움이되도록 다음은 일반적인 화면 너비에 대한 몇 가지 수치입니다.
320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
표 2의 크기 한정자를 사용하면 애플리케이션에서 너비 및 / 또는 높이에 원하는 숫자를 사용하여 핸드셋 및 태블릿에 대한 다양한 레이아웃 리소스간에 전환 할 수 있습니다. 예를 들어 600dp가 태블릿 레이아웃에서 지원하는 사용 가능한 최소 너비 인 경우 다음 두 가지 레이아웃 세트를 제공 할 수 있습니다.
res / layout / main_activity.xml # 핸드셋 용 res / layout-sw600dp / main_activity.xml # 태블릿 용
이 경우 태블릿 레이아웃을 적용하려면 사용 가능한 화면 공간의 최소 너비가 600dp 여야합니다.
7 인치 및 10 인치 태블릿과 같은 크기를 구분하기 위해 UI를 추가로 사용자 지정하려는 다른 경우에는 최소 너비 레이아웃을 추가로 정의 할 수 있습니다.
res / layout / main_activity.xml # 핸드셋 용 (사용 가능한 너비가 600dp 미만) res / layout-sw600dp / main_activity.xml # 7 인치 태블릿 용 (600dp 너비 이상) res / layout-sw720dp / main_activity.xml
10 인치 태블릿 용 (폭 720dp 이상)
이전 두 세트의 예제 리소스는 기기의 현재 방향에 관계없이 화면의 양면 중 가장 작은 것을 지정하는 "가장 작은 너비"한정자 인 swdp를 사용합니다. 따라서 swdp를 사용하는 것은 화면 방향을 무시하여 레이아웃에 사용할 수있는 전체 화면 크기를 지정하는 간단한 방법입니다.
그러나 경우에 따라 레이아웃에 중요한 것은 현재 사용 가능한 너비 또는 높이의 정확한 양입니다. 예를 들어 두 개의 조각이 나란히있는 두 개의 창 레이아웃이있는 경우 기기가 가로 방향이든 세로 방향이든 상관없이 화면이 최소 600dp의 너비를 제공 할 때마다이를 사용할 수 있습니다. 이 경우 리소스는 다음과 같을 수 있습니다.
res / layout / main_activity.xml # 핸드셋 용 (사용 가능한 너비가 600dp 미만) res / layout-w600dp / main_activity.xml # 다중 창 (사용 가능한 너비가 600dp 이상인 모든 화면)
두 번째 집합은 "사용 가능한 너비"한정자 인 wdp를 사용하고 있습니다. 이렇게하면 화면의 방향에 따라 한 기기에서 실제로 두 레이아웃을 모두 사용할 수 있습니다 (사용 가능한 너비가 한 방향에서 600dp 이상이고 다른 방향에서 600dp 미만인 경우).
사용 가능한 높이가 문제가되는 경우 hdp 한정자를 사용하여 동일한 작업을 수행 할 수 있습니다. 또는 실제로 특정해야하는 경우 wdp 및 hdp 한정자를 결합 할 수도 있습니다.