안드로이드 개발을 하다 보면 코드상에서 동적으로 뷰의 크기나 위치를 조절할 일이 생긴다. XML에서는 주로 dp 단위를 사용하지만(그게 권장되기도 하고), 코드에서는 기본적으로 px 단위를 사용한다. 따라서 dp를 px로 변환해서 사용해야 하는데 아무래도 쓸 일이 많을 테니 정리해서 올려놓는다.

사실 코드를 보면 별거 없는 한 줄짜리 코드이다.


fun dpToPx(context: Context, dp: Float): Float {
    return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.resources.displayMetrics)
}

정말 별거 없다... 사용은 dpToPx(this, 80f) 뭐 이런 식으로 쓰면 된다.

사실 지금은 저런 메소드를 만드는 것보단 Splitties 라이브러리를 사용하고 있다. 지금은 개발 중단된 Anko 라이브러리 같은 유틸리티 라이브러리인데 안드로이드 개발 중에 가려운 부분을 잘 긁어준다. 쓸데없이 긴 토스트 메시지라든지, 인텐트 호출이라든지...

저 라이브러리를 사용하면 그냥 dip, dp 메소드를 사용하면 된다. (dip는 int, dp는 float)

+ Recent posts