기준값

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값으로 넣어주었더니

어느 폰에서나 똑같은 크기로 나올 수 있었다.




+ Recent posts