1. Density
화면의 가로와 세로에 걸쳐있는 픽셀들의 흩어짐 정도를 말한다. 흔히 컴퓨터의 경우 1024*768 이라는 것은 화면을 1024 개의 가로픽셀과 세로 768개의 픽셀이 화면을 나타내고 있다는 것이다. 이는 화면 크기와 상관없이 픽셀의 수치가 높을 수록 고해상도로 화면이 더 선명하게 보인다.
refers to the degree of variation of pixels across the width and height of the screen. In general, in the case of a computer, of of 1024 * 768 is that it shows the screen of 768 pixels and vertical pixels in the horizontal direction of the 1024 screen. Regardless of the size of the screen, this looks more clearly the screen in high resolution higher the number of pixels high.
2. dip (density independent pixel)
android 화면의 상대적 비율이라 생각하면 된다.
platform에 의해 가정된 기본적인 Density는 160 dpi(320x480)화면에서의 물리적 1픽셀과 동일하다.
dp 를 설정하는 이유는 android 화면 해상도가 워낙 다양하기 때문에 개발시에 상대적인 수치를 적용함으로써 더욱 쉽게 다양한 해상도를 지원하기 위함이라 생각한다.
may be think that it is the relative proportions of the screen of android.
Density basic that has been assumed by platform is the same as one physical pixels in 160 dpi (320x480) screen.
The reason for setting the dp, consider for a screen resolution of android is varied too, by applying a relative number during development, and in order to support various resolutions more easily.
안드로이드의 Screen에 대한 표는 다음과 같다.
- Resource scale limit: large, normal, small
- Resource density limit : hdpi, mdpi, ldpi
Low density (120), ldpi | Medium density (160), mdpi | High density (240), hdpi | |
Small screen | * QVGA (240x320), 2.6"-3.0" diagonal | * WVGA (480x800), 3.3"-4.0" diagonal | |
Normal screen | * WQVGA (240x400), 3.2"-3.5" diagonal | * HVGA (320x480), 3.0"-3.5" diagonal | |
Large screen | * WVGA (480x800), 4.8"-5.5" diagonal |
Platfrom은 3가지 방법으로 다른 Density에 대한 호환 방법을 지원해준다.
1. 다른 Drawable을 로딩함으로써 Density에 맞는 Pre-Scaling
res/layout/my_layout.xml // layout for normal screen size
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode
res/drawable-ldpi/my_icon.png // icon image for low density
res/drawable-mdpi/dpi/my_icon.png // icon for medium density
res/drawable-hdpi/my_icon.png // icon image for high density
res/drawable-nodpi/composite.xml // density independent resource
2. Layout에서 dip 단위를 사용함으로 Auto-Scaling
3. supports-screens를 이용하여 설정 여부에 따른 Auto-Scaling
보통 여러 해상도를 지원하기 위해서 화면 구현을 할때는 dip를 쓴다.
그러나 pixel을 사용하는 경우에도 해상도 비례하여 확장, 축소하여 그려줄 수 있다.
중요한 것은 테스트를 해봤을 때 Medium density 기준한 화면을 High density에서 출력은 가능했으나
High density를 기준한 화면은 Medium density로 자동 리사이즈 해주지 않는다는것이다.
(Note that applications written for the baseline screen may need minor adjustments
before they display properly on smaller screens such as QVGA.)
3번 기능을 이용하기 위해서는 AndroidManifest.xml 에 다음과 같은 태그를 추가 해 줘야 한다.
<supports-screens
android:largeScreens="false"
android:normalScreens="false"
android:smallScreens="false"
android:anyDensity="false"/>
위와 같이 Density 속성을 false 로 설정해 주면 어느 해상도에서든 똑같은 크기가 출력된다.
If set to false Density property as described above, the same size are output at any resolution.
'Android' 카테고리의 다른 글
Android adb 명령어 안될 때 (3) | 2017.11.29 |
---|---|
ADT Update 후 FragmentActivity class could not found exception 발생 시 대처법 (0) | 2017.11.28 |
Android Invisible Button Action 투명 버튼 클릭 (0) | 2017.11.19 |
Android 퍼미션 권한정보 가져오기 (0) | 2017.10.15 |
Android Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE 오류 해결ㄹ (0) | 2017.05.02 |
댓글