본문 바로가기
개발/안드로이드

getDimension() 과 getDimensionPixelSize() 의 차이점

by darksilber 2016. 7. 4.
반응형

출처 - https://chrisjhyoon.wordpress.com/2015/07/01/getdimension-%EA%B3%BC-getdimensionpixelsize-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90/

 

 

안드로이드 java 프로그램내에서 리소스 xml 에 dp 나 sp 로 정의되어 있는 사이즈 값을 가져올 때

getResources().getDimension(R.dimen.idname);
getResources().getDimensionPixelSize(R.dimen.idname);

둘 중 하나를 쓰는데 리턴되는 내용은 차이가 없고, 단지 getDimension() 은 float 형이고, getDimensionPixelSize() 는 int 형일 뿐임.

따라서 10dp 또는 10sp 로 정의되어 있는 리소스아이디를 xxhdpi 에서 불러오면 모두 30 이 리턴됨.

만약, textSize 를 프로그램에서 리소스 아이디로부터 불러와서 지정해주고 싶은 경우,

tvTest.textSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.idname));

와 같이 픽셀단위로 변환되었음을 명시해줘야 한다. 안 그러면 사이즈가 3배 커진 결과물을 보게 된다..

반응형

댓글