Android 학습 루트(18)는 서로 다른 장치 지원-서로 다른 화면 지원

Android 시스템은 장치 화면을 분류하기 위해 크기와 밀도라는 두 가지 일반 속성을 사용합니다.화면 크기와 밀도를 포함한 응용 프로그램이 어떤 장치에 설치될지 예측해야 한다.이렇게 되면, 서로 다른 스크린에 응용할 수 있는 가장 좋은 자원 종류를 제공해야 한다.
네 가지 보편적인 사이즈가 있습니다:small,normal,large,xlarge그리고 네 가지 보편적인 밀도: low(ldpi),medium(mdpi),high(hdpi),extrahigh(xhdpi)서로 다른 화면에 서로 다른 레이아웃과 그림을 설명하려면 선택할 수 있는 자원을 다른 디렉터리에 두어야 한다. 이것은 다중 언어를 지원하는 방법과 유사하다.
마찬가지로 서로 다른 화면 크기 아래의 화면 방향 설정을 고려해야 하기 때문에 많은 응용 프로그램들이 서로 다른 방향에서 서로 다른 구조를 바꾸어 최상의 사용자 체험을 실현한다.
다른 배치 생성하기
다양한 화면 크기에 적용할 수 있는 사용자 체험을 제공합니다. 지원하고 싶은 화면 크기마다 유일한 XML 레이아웃 파일을 만들어야 합니다.모든 레이아웃 파일은 적당한 자원 디렉터리에 저장해야 하며 디렉터리 이름은 -<screen_size>를 접미사로 한다.예를 들어 큰 화면을 저장하는 레이아웃 디렉터리의 이름은 res/layout-large/ 이다.
팁: Android 시스템은 자동으로 배치를 확장하여 화면에 맞게 배치합니다.따라서 서로 다른 레이아웃을 위해 디자인한 UI 요소의 실제 사이즈를 걱정할 필요가 없다. 사용자 체험에 영향을 주는 레이아웃 구조 (예를 들어 중요한 레이아웃이 옆에 있는 레이아웃의 사이즈와 위치에 상대적인 것) 를 주의해야 한다.
예를 들어, 이 항목에는 기본 레이아웃 디렉토리와 큰 화면에 사용되는 레이아웃 디렉토리가 포함됩니다.
MyProject/
    res/
        layout/
            main.xml
        layout-large/
            main.xml

파일 이름은 반드시 완전히 같아야 하지만, 그것들의 내용은 같지 않아서, 서로 다른 화면 크기에 가장 좋은 UI 전시를 제공할 수 있다.
응용 프로그램에서 레이아웃을 간단하게 참조합니다.
@Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
}

디바이스의 화면 크기에 따라 적절한 레이아웃 디렉토리의 레이아웃 파일이 추가됩니다.적절한 레이아웃 리소스 선택에 대한 자세한 내용은 Providing Resources 부트를 참조하십시오.
또 다른 예로는 프로젝트 가로 화면의 선택적 리소스가 있습니다.
MyProject/
    res/
        layout/
            main.xml
        layout-land/
            main.xml

기본적으로 layout/main.xml 파일은 세로로 표시됩니다.
큰 화면의 장치를 포함한 응용 프로그램의 레이아웃을 지정하려면 largeland 제한을 동시에 사용해야 합니다.
MyProject/
    res/
        layout/              # default (portrait)
            main.xml
        layout-land/         # landscape
            main.xml
        layout-large/        # large (portrait)
            main.xml
        layout-large-land/   # large landscape
            main.xml

팁: Android 3.2 이상의 시스템은 밀도와 무관한 픽셀의 최소 너비와 높이에 따라 지정된 화면 크기의 자원을 지정할 수 있는 고급 방법을 제공합니다.이 과정은 이 신기술을 포함하지 않는다.자세한 내용은 Designing for Multiple Screens를 참조하십시오.
다른 그림 만들기
모든 공통 밀도 장치에 정확하게 축소할 수 있는 그림 자원을 제공해야 합니다: low,medium,high and extra-high 밀도.이것은 모든 화면 밀도 장치에서 더 높은 그림 품질과 성능을 얻을 수 있도록 도와준다.
이 그림을 생성하려면 먼저 다음 크기 크기의 원본 자원에 대한 벡터 자원으로 서로 다른 화면 밀도에 그림을 생성해야 합니다.
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75
이것은 xhdpi 장치에 200x200 그림을 생성하면 hdpi 장치에 150x150의 같은 자원을 생성해야 한다는 것을 의미합니다.mdpi 장치 100x100,ldpi 장치 75x75입니다.
그런 다음 해당 drawable 리소스 디렉토리에 파일을 배치합니다.
MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png

네가 인용할 때마다 @drawable/awesomeimage 시스템은 화면 밀도에 따라 적당한 그림을 선택한다.
알림: 저해상도 (ldpi) 자원은 필요하지 않습니다.hdpi 자원을 제공하면, 시스템은ldpi 화면에 맞게 자원을 반으로 줄일 것입니다.
응용 프로그램에 icon 자원을 만드는 마법사에 대한 자세한 내용은 Iconography 디자인 가이드를 참조하십시오.

좋은 웹페이지 즐겨찾기