- 안드로이드에서 다양한 화면크기의 기기들을 지원하려면 고정 단위인 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 단위 변환|작성자 개구리getResources().getDisplayMetrics().density; // 화면의 밀도를 구한다.getResources().getDisplayMetrics();
'안드로이드 개발 > Design' 카테고리의 다른 글
| 해상도별 레이아웃 처리 (0) | 2012.09.25 |
|---|---|
| 안드로이드 단위 (0) | 2010.08.15 |
| declares support for large, normal, and small screens (0) | 2010.07.31 |