마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

단말기의 길이는 다른데 같은 해상도면 어떻게 레이아웃 처리 하시나요? ㅠㅠ

–1 추천
갤럭시S5 = 2560x1440

갤럭시S7 = 2560x1440

갤럭시S7이 더 깁니다. 하지만 같은 해상도이다 보니 layout-xxxhdpi의 레이아웃을 호출합니다.

그러다보니 갤럭시S7에서는 화면이 찌그러져 보입니다. 여러분은 어떻게 이 문제를 해결하시는지요?

힘드네요.
엔조이AD (2,610 포인트) 님이 2017년 5월 23일 질문 1 신고

2개의 답변

+1 추천
비율로 처리하세요

해상도는 비율밖에 없습니다
qweqweq (4,220 포인트) 님이 2017년 5월 23일 답변
제가 질문한거랑 같은데요. 비율이라면 xhdpi, xxhdpi,xxxhdpi 을 말하는건가요?
위의 질문에서와 같이 해상도 비율이 같더라도 단말기 길이가 다릅니다.
직접 갤럭시 S7 과 갤럭시S5 스펙을 보시면 아실겁니다.
제가 말한 비율은
xml을 정의할때 쓰는 weight 를 말한겁니다
네. 이미 적용하고 있습니다. 답변감사합니다.^^
0 추천
둘다 해상도가 같은데 S7이 더 길다는게 무슨 말씀이신가요? 해상도가 같으면 화면 비율도 같습니다.
익명사용자 님이 2017년 5월 23일 답변
Display display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        width = size.x;
        height = size.y;
 여기에서 로그를 찍으면 둘다
 width=1440
 height =2560
으로 나오고
Configuration config = getResources().getConfiguration();
int h = config.screenHeightDp;
int w = config.screenWidthDp;

서로 길이이와 너비가 다르게 나옵니다.
그래서 처리를
2560x1440이면 아래 조건에 걸게 해서
아래의 폭과 넓이에 따라  갤s7 또는  갤s5만의
layout에 각각 걸리게 했습니다.

문제는 위처럼 같은 해상도이지만 아래 조건에서 너비와 높이가 다른
단말기가 무수히 많이 쏟아질텐데 이렇게 하는건 무식한 방법같아서요.
다른 방법이 없을까요?
1. galaxy S5 가 1440x2560이 맞나요? S5 LTE-A 아닌가요?
1. display.getSize와 config.screenHeightDp 등은 모두 기기의 물리적인 실제 화면 크기를 리턴한다는 보장이 없습니다.
2. 두 기기의 config.screenHeightDp 및 config.screenWidthDp는 차이가 많이 나는지요?
3. 조건 분기로 각 기기별 대응을 하겠다는 것은 잘못된 접근 방식입니다. 그런식으로는 작업이 끝이 없을 겁니다. 하나의 레이아웃으로 모든 경우에 대응이 가능하도록 작업하는 것이 좋습니다.
저도 그렇게 해야 된다고 생각합니다. 그래서 여기게 질문을 올린겁니다.
차이가 많이 납니다. 갤럭시 S8인경우는 더 심하구요.
어떻게 해야 하나의 레이아웃에서 처리를 할수있을까요?
...