px, dpi,dp 요약
px(픽셀): 절대적인 단위, 물리적 화면을 구성하는 최소 단위라고 생각하면 되나? , 상세한 설명은 생략한다.
dpi: 인치당 펙셀 갯수. 일종의 해상도를 보여준다고 생각하면 될듯
명칭 |
인치당 픽셀수 |
배율 |
런처 아이콘 크기 |
Ldpi |
120 |
0.75 |
|
mdpi |
160 |
1 |
48*48 |
Hdpi |
240 |
1.5 |
72*72 |
Xhdpi |
320 |
2 |
96*96 |
XXHdpi |
480 |
3 |
144*144 |
XXXhdpi |
640 |
4 |
192*192 |
dp(dip)=device independent pixel
말그대로 기기와 상관없는 픽셀이란 뜻임
아래와 같이 하면 픽셀을 dp로 바꿀 수 있음
Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 픽셀값, r.getDisplayMetrics());
더 정석은 아래의 함수를 쓰면 된다.
public static float convertPixelsToDp(float px, Context context){
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float dp = px / ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT);
return dp;
}
여기 설명 잘되어 있음: http://iconhandbook.co.uk/reference/chart/android/