[Android] 안드로이드에서 다른 화면 크기를 지원하는 방법



Answers

dp 크기 단위 대신 sdp 크기 단위를 사용할 수 있습니다. sdp 크기 단위는 화면 크기에 비례하기 때문에 여러 화면 크기를 타겟팅하는 것이 좋습니다.

그것을 신중하게 사용하십시오! 예를 들어 대부분의 경우 여전히 태블릿에 대해 다른 레이아웃을 설계해야합니다.

Question

안드로이드에서 앱을 개발 중이며 모든 화면 크기와 밀도를 지원해야합니다. 그래서 레이아웃을 위해 다른 폴더를 만들었습니다 : layout-small layout-large layout .

그런 다음 이미지 용으로 다른 폴더 인 ldpi, mdpihdpi . 모든 드로어 블 폴더에서 이미지의 크기가 서로 다르면 true입니까? 나는 화면 크기가 크고 밀도가 중간 크기 인 휴대 전화를 가지고 있는데, 이미지가 작아지고 크기가 적절하지 않다고 물어 본다.




그것은 여러 스크린 크기를 지원하는 것과 관련하여 높은 것으로 들립니다. 다음 gves가 더 나은 결과를 제공합니다.

res/layout/layout-w120dp
res/layout/layout-w160dp
res/layout/layout-w240dp
res/layout/layout-w160dp
res/layout/layout-w320dp
res/layout/layout-w480dp
res/layout/layout-w600dp
res/layout/layout-w720dp

디스플레이 측정 값을 사용하여 장치 너비와 높이 확인

디바이스의 결과 너비에 맞는 레이아웃을 배치하거나 계산합니다.

let smallestScreenWidthDp="assume some value(Which will be derived from Display metrics)"

setContentView () 전에 모두 검사해야합니다. 그렇지 않으면 문제가 발생합니다.

     Configuration config = getResources().getConfiguration();

     Configuration config = getResources().getConfiguration();

        if (config.smallestScreenWidthDp >= 600) {
            setContentView(R.layout.layout-w600dp);
        } else {
            setContentView(R.layout.main_activity);
        }

맨 위에는 여러 개의 스크린을 맞추기 위해 너무 많은 레이아웃을 만들었습니다. 모두가 당신에 달려 있습니다. 그렇지 않은지도 모르겠군요. 어떤 API에서 플레이 스토어 리뷰를 볼 수 있습니다. 다운로드가 높습니다. 계속 진행해야합니다. .

도움이되기를 바랍니다. 제 3 자 라이브러리를 사용하는 사람이 거의 없었습니다. 작업량이 줄어들지는 않았지만 이는 최선의 방법은 아닙니다. Android 모범 사례에 익숙해집니다.

이것 좀 봐




안드로이드 자체로 고해상도 장치 및 기타 장치에 대해 다른 이미지를 사용하려는 경우 다른 폴더에 대해 별도의 이미지를 넣을 수 있습니다. 그렇지 않으면 단지 하나의 drawable, 레이아웃 폴더를 일부 이미지에만 넣으면 9 패치도 만들 수 있습니다.

여기를 읽으십시오.

여러 화면 지원 링크에 대한 매니페스트 권한이 필요 합니다.

<supports-screens android:resizeable=["true"| "false"]
                  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:xlargeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"]
                  android:requiresSmallestWidthDp="integer"
                  android:compatibleWidthLimitDp="integer"
                  android:largestWidthLimitDp="integer"/>



@ud_an에 추가하기

레이아웃을위한 다른 폴더를 만드는 것은 좋은 습관이 아닙니다. 모든 화면 크기에서 잘 작동하도록 레이아웃을 만드십시오. 이를 달성하려면 레이아웃 속성을 사용하십시오. hdpi, mdpi 및 ldpi 유형에 대해 서로 다른 이미지 만 있으면됩니다. 나머지는 안드로이드 운영 체제에 의해 관리됩니다.




Links