* image.png px 이미지를 디바이스 dp로 변환하는 과정에서 반영되어야 하는것!
- 가로px , 세로px , 디바이스 dpi
* dpi 란?
- 1cm 정사각형에 들어가는 픽셀의 수(dot per inch)
안드로이드의 mdpi(가로360px 세로640px 해상도160dpi)를 예로 들겠음
160개의 도트가 모여서 1cm 정사각형의 픽셀 을 만들고, 이 픽셀들이 모여서 가로360px 세로670px 안에 이미지를 만드는 방식이다.
간단히 말해서, dpi는 화질(해상도)이라고 생각하면 된다. 당연히 dpi 높을수록 1cm 안에 들어가는 도트가 많아져 그만큼 화질이 좋아지는 원리 이다.
* 예를 들어,가로360px 세로640px 의 150px 정사각형 이미지를(rect150.png) 안드로이드에 적용시키기 위해선 최소 기본적인 5가지 폴더(dpi, hdpi , xhdpi , xxhdpi, xxxdhpi)의 dp 값을 안드로이드에 입력을 해주어야 한다.
* dp 란?
- 안드로이드에서 위의 디바이스별 이미지를 맞춰 자동으로 계산해주는 단위 이다.
위의 예로 5가지 사이즈를 계산하면, 먼저 디바이스 별 dpi를 알고있어야 한다.
- mdpi = 160dpi
- hdpi = 240dpi
- xhdpi = 320dpi
- xxhdpi = 480dpi
- xxxhdpi = 640dpi
* dp 계산(dp = 변환px * (안드로이드기본해상도dpi/디바이스해상도dpi))
- mdpi 에서의 dp = 150 * (160/160)
- hdpi 에서의 dp = 150 * (160/240)
- xhdpi 에서의 dp = 150 * (160/320)
- xxhdpi 에서의 dp = 150 * (160/480)
- xxxhdpi 에서의 dp = 150 * (160/640)
* 결과
- mdpi = 150dp
- hdpi = 100dp
- xhdpi = 75dp
- xxhdpi 에서의 dp = 50dp
- xxxhdpi 에서의 dp = 37.5dp
* 결론
- 위의 가로360px 세로640px 의 150px 정사각형 이미지를 안드로이드 에서 작업할 경우
아래의 값이 폴더별로 지정 되어있어야 조금 더 디테일한 사이즈 대응이 가능해 진다.
- mdpi = 150dp
- hdpi = 100dp
- xhdpi = 75dp
- xxhdpi 에서의 dp = 50dp
- xxxhdpi 에서의 dp = 37.5dp
- 끝 -