- 안드로이드에서 다양한 화면크기의 기기들을 지원하려면 고정 단위인 px 보다 밀도에 따른 논리 단위인 dip 를 사용해야한다.
하지만 안드로이드 api 소스코드들의 크기는 px 단위를 사용한다. 따라서 dip를 px 로 변환하여 사용하는 방법이 필요.
- 안드로이드 개발자 사이트 화면 관련
http://developer.android.com/guide/practices/screens_support.html
다양한 3가지 방법
- 입맛에 맞춰 사용하자
- 아래소스는 10 dip 를 pixel 로 변환한다는 것을 가정한다.
1. 안드로이드 dev 사이트에 소개된 방식
final float scale = float dip = 10.0f; // 변환하고자하는 dip 치수 int pixel = (int) (dip * scale + 0.5f); // 변환하는데 0.5 는 반올림을 위하여 붙여줌. |
2. 리소스를 이용한 방식
res / values / dimens.xml 파일을 생성하고 dimen 엘리먼트를 이용하여 원하는 dip 치수 저장 <dimen name="dip_size">10dip</dimen> ================================================================================================================ // dimens 에서 저장했던 엘리먼트를 불러오면 자동으로 pixel 단위로 변환. int pixel = (int)getResources().getDimension(R.dimen.dip_size); |
3. TypedValue 클래스를 이용한 방식
DisplayMetrics dm = int pixel = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10 , dm); |
[출처] [코드] px 과 dip 단위 변환|작성자 개구리
'프로그래밍 > Android' 카테고리의 다른 글
[Android]Android, MySQL, PHP, & JSON Tutorial (0) | 2014.12.03 |
---|---|
[Android] Handler{} sending message to a Handler on a dead thread (0) | 2012.12.11 |
AudioFrequence (0) | 2012.10.04 |
[Android]Avoiding Memory Leaks(번역자료 링크) (0) | 2012.09.07 |
[Android] 안드로이드 GCM 이용과 Third party(jsp) 가이드 (0) | 2012.09.03 |