Mobile/Android

[Android] 코드에서 setHeight / setWidth dip 설정

oSsonGo 2011. 8. 31. 15:56
dip : density-Indefendent Pixel (밀도에 독립적인 픽셀)

보통 1인치에 160픽셀이 들어가면 160ppi 또는 160dpi 라고 적음
이 160dpi의 값이 Android 개발에 있어서 기준이 되는 HGVA(320*480) 값

해상도가 다른 화면에서 똑같은 이미지를 보여주는 의미인 추상화된 pixel 개념
이미지를 확대 축소할때 간격을 맞쳐주기 위한 구문
 final int m_iDPI = getResources().getDisplayMetrics().densityDpi; - 160
 final float scale = getResources().getDisplayMetrics().density; - 1.0
 final int m_iHeight = getResources().getDisplayMetrics().heightPixels; - 320
 final int m_iWidth = getResources().getDisplayMetrics().widthPixels - 480

1dip가 몇 pixal인지 구하는 구문
getResources().getDisplayMetrics().density;

xml에서 Height / Width 의 설정은 dip , pixel 가능
코드상에서 Height / Width 의 설정은 pixel 만 가능

- pixel을 dip값으로 변환 과정 -

int d = 45;
float scale = getResources().getDisplayMetrics().density;
final int calHeight = (int)(d*scale);
b.setHeight(calHeight);