2009년 9월 19일 토요일

Understanding DIP on Android Platform

안드로이드의 HW configuration에서 LCD density라는 환경 설정 값을 가지고 있습니다. 기본적으로 이 값은 160입니다. (DEFAULT).

도넛 버전 이전에는 공식적으로 HVGA만 지원을 했고 도넛부터 WGVA등이 추가되었습니.

이와 함께 LCD density 120 (LOW) 240 (HIGH) 두 개가 추가되었습니다.

아래 이미지들은 WVGA 해상도에서 LCD density 160 240인 경우를 비교해 놓은 것입니다.

보시듯이 LCD density 240일 경우 즉 고해상도에 LCD의 물리적인 사이즈가 변경이 거의 되지 않으며 HVGA랑 거의 동일한 look을 가지게 됩니다.

LCD density 160일 경우 MID같이 LCD의 물리적인 사이즈가 매우 커졌을 때 유용한 형태 인 것으로 생각됩니다.

(왜 이렇게 되는가는 표 아래쪽에 설명을 첨부하였습니다.)


Lcd.density = 160

Lcd.density = 240

Home

Apps List

Settings

실제 DPI 정보와는 약간 다른 단위가 안드로이드에 사용이 되고 있습니다.

DIP (또는 DP)라는 것으로 Device Independent Pixel의 약자입니다.

이는 디바이스의 LCD 해상도가 변경이 되어도 GUI 요소들의 물리적인 크기를 동일하게 유지하기 위한 방법입니다.

LCD density 160일 경우, 1 DIP = 1 Pixel 이라는 공식이 성립됩니다. (안드로이드가 HVGA, 160에서 출발해서 그렇습니다.)

따라서 이 density 값이 240으로 변경되면 1 DIP = 1.5 Pixel이 됩니다.

기본 생성되는 WVGA 에뮬레이터가 density 240으로 설정되어 있는데, 이 때문에 아이콘들이나 이미지들이 늘어나 보입니다.

(기존 20DIP x 20DIP 크기의 이미지가 HVGA (160)에서는 20pixel x 20 pixel로 보이지만 WVGA (240)에서는 30pixel x 20pixel 로 보이기 때문입니다.)

따라서 실제 물리적인 LCD의 크기가 많이 커지지 않고 해상도만 커진다면, 고해상도에서 더 많은 pixel을 차지하게 되므로 GUI 요소들의 실제 크기는 유사하게 유지시킬 수 있습니다. (예를 들면 저해상도 고해상도에서 모두 1인치)

댓글 없음:

댓글 쓰기