안녕하세요. 갤럭시탭 10.1을 구매했습니다.
조금 당황하고 있는데요.
갤럭시2 HD 해상도용으로 화면을 구성한 어플이 있습니다.
그 어플을 갤럭시 탭에 돌려보니 ... 가로도 그렇고 세로도 그렇고 엄청 넓게 퍼지고.. 리스트 화면의 경우 한페이지에 훨씬 많이 보입니다.
어찌된 일인가요..
갤럭시 탭 10.1의 경우 해상도가 1232x800(메뉴얼에는 12800x800로 표시되어 있습니다.)이라 갤럭시2 HD 보다 (1280x720) 세로가 짧고 가로가 길거라고 생각했는데.. 화면에 들어가는 데이타가 가로 세로 다 큽니다.
해상도말고 어떤 값을 체크해야 화면에 맞게 구성할 수 있는지.. 난감합니다.. ㅠ
예를 들면 리스트 길이도... android:layout_height="425dp"요렇게 표기했는데.. 갤럭시 탭에서 짧네요.. ㅜ 이 크기를 두배로 조정하면 .. 갤럭시2 HD에서는 너무 길어요.. ㅜ
두가지 기기는 density가 다릅니다.
그러므로 다른 레이아웃을 만드셔야 합니다.
갤탭은 density가 1 이므로, 1dip = 1px 입니다, 그래서 결국 800dp x 1280dp 크기의 레이아웃을 만들어야 합니다.
갤럭시hd는 density가 2입니다. 1dip = 2px 입니다. 360dp x 640dp 크기의 레이아웃을 만들어야 합니다.
우리가 많이 쓰는 보통의 480pxx800px 폰들은 density가 1.5이므로 1dip = 1.5px, 320dp x 533dp 크기의 레이아웃을 만들어야 합니다.
layout
layout-hdpi-1280x720
layout-sw-800
세가지를 만들면 될듯합니다.
아래의 링크를 참고하세요.
http://developer.android.com/guide/practices/screens_support.html




디바이스마다 dp가 다릅니다.... 해상도가 같아도 dp가 다르면 보여지는 뷰는 다릅니다....
일단 dp랑 dip는 같이 쓰이구 Density-independent Pixels의 줄임말 입니다...
dp가 160인 경우에는 1dp는 1pixel과 같습니. 그러나 dpi가 240인 경우에는 1dp는 1.5pixel이 됩니다...
요런 차이에서 차이가 나는겁니당.... 갤2와 갤탭10.1의 DP도 알아보세요~
안드로이드는 레이아웃 고려하실때 해상도만 따지시면 안되엽~ ㅎ
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
int sum = outMetrics.densityDpi;
이렇게하면 Dpi 얻어올 수 있네영
DPI 는 Dots per inch 로 인치당 도트수를 말합니다~
검색해보니 갤2는 240dp고 갤탭10.1은 160dp 네요.... 해상도가 비슷한데
갤탭10.1이 훠씬 스크린 크기가 크니까 인치당 가질 수 있는 도트수가 당연 적겠죠?
그리고 레이아웃 구성은 해상도별로 따로 구현하면 업데이트나 수정을 할때 일일이 신경써줘야 하고
놓치는부분을 나중에 발견하게 되면 그게 버그가 되죠...
그래서 전 따로 구성하기 보다는 weight를 사용하여 %로 구성하여 별도의 처리 없이 같아 보이게끔 구현합니다....
물론 UI나 뷰의 종류나 의도에 따라 dp를 쓰는게 더 나을때도 있구요..... 요지는 해상도별로 버전별로 나누는
방식은 지양한다 이거죠