Develop

[android] 해상도 관련 팁 (dip -> pixel 변환)

by hooni posted Apr 23, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
안드로이드 개발을 하다보면 dip단위를 사용해야 폰의 화면 사이즈에 따른 문제를 극복할수가 있다...
그러나... 레이아웃에서가 아닌 동적으로 View들을 생성해서 사용하다 보면.. 본의아니게(?)ㅋㅋ pixel을 사용해야할 때가 있다..

그럴경우... 320사이즈폰에서.. 10pixel을.. 480에서도 10pixel을 하면.. 이미지가 작아진다... 배치가 안맞춰질것이다..
이미지는 안드로이드가 알아서 확대를 해주는데 그럼 이미지도 짤리는 상황이 연출된다...

그럴경우는 320에서의 10pixel이 480에서는 얼마인지 계산해주면 된다..
제가 개발해보기로는 320에서 1픽셀이.. 1dip였는데....  뭐 계산하면. 1.5픽셀인데..ㅎㅎ
public static float getDisplayMetricsDensity(Context context)
{
    return context.getResources().getDisplayMetrics().density;
}

public static int getPixel(Context context, int p)
{
    float den = getDisplayMetricsDensity(context);
    if(den != 1)
    {
        return (int)(p*den+0.5);
    }
    return p;
}

위의 메소드를 이용하면 자동으로 계산할수 있다..

[출처] http://crashj.egloos.com/3729114