안드로이드 dip px 변환하기
2013. 7. 23. 14:06
반응형
기준값
Low density = 120, ldpi
Medium density = 160, mdpi
High density = 240, hdpi
(px -> dip) dip 값 구하기 |
(dip -> px) px 값 구하기 |
dip = px * (160/기준값) (hdpi 기준) dip = ( PX / 3 ) * 2 (hdpi 기준) dip = px * 0.666 |
pixels = dip * (기준값/ 160) (hdpi 기준) px = dip * 1.5 |
이미지를 레이아웃 백그라운드에 넣어줬더니 폰마다 다른 해상도 때문에 테스트 폰보다 큰 폰에서는 이미지가 늘어나는 현상이 발생했다.
그래서 레이아웃크기를 wrap_content로 해준 걸 수치로 고정시켜주었다.
그런데 xml에서는 크기수치를 dp로 주게 되어있는데 나는 dp가 픽셀이랑 같은 수치인 줄 알았다.
테스트 해보니 그게 아니었다.
그래서 변환 공식을 찾았고 계산을 해서 직접 때려넣었다.
물론 소스 상에 변환 코드를 넣어서 구현할 수도 있지만 귀찮기도 하고 실력부족으로...
(기준 값은 hdpi=240으로 잡고 계산했다.)
이미지 사이즈는 픽셀기준이라 그 수치를 공식에 대입해서 나온 결과 값을 레이아웃 dp값으로 넣어주었더니
어느 폰에서나 똑같은 크기로 나올 수 있었다.
반응형
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 EditText 에디트텍스트 값 남겨두기 (0) | 2013.09.09 |
---|---|
안드로이드 Spinner(스피너) 값 전달하기 (11) | 2013.08.29 |
안드로이드 버튼 여러개 쓰기 (0) | 2013.07.21 |
안드로이드 공유하기 기능쓰기 (7) | 2013.07.21 |
안드로이드 숫자 키보드 띄우기 (0) | 2013.07.20 |