출처 : http://manhdh.blog.me/120160754181
- 안드로이드에서 다양한 화면크기의 기기들을 지원하려면 고정 단위인 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);
|
'IT_Programming > Android_Java' 카테고리의 다른 글
안드로이드 태스크 스택 확인하기 (0) | 2013.08.19 |
---|---|
Android View 관련된 오픈소스 정리 (0) | 2013.08.17 |
[펌] 안드로이드 apk 디컴파일(Decompile) 및 리패키징(Repackaging) 하기 (0) | 2013.08.10 |
Android NFC (0) | 2013.08.05 |
안드로이드 바코드 인식기(OCR) 오픈 소스 zxing 분석 (0) | 2013.08.05 |