안드로이드 한창 개발하던 시절. (진심 犬足)
왜 그림을 넣는 드로우 폴더는 여러개 인가..? 라는 쓸대 없는 고민을 한적이 있더랬죠.
한 폴더에만(예를 들어 Mdpi 라던가.) 넣고 쓰면 안되나.?
라는 고민으로 시작된 뻘짓.
여러가지 검색결과
안드로이드의 dpi 는 여러가지가 있고..
기기마다 다른 dpi 를 가지고 있다.
무슨소린고 하니. mdpi 에 넣고 xdpi 를 쓰는 기기에 설치를 하면 그림 크기가 이상해 진다는 사실!
여기서 더 웃긴건! xdpi 에도 넣으면 그림이 정상적 출력! 허허..
난 한개의 폴더만 쓰고 싶단 말임.ㅠㅠ 왜 자꾸 지맘대로 커젓다 줄었다 하는겨.ㅠ 똘똘이냐!
가뜩이나 그림도 많은데. 기기가 또 새로운게 추가 되면 또 업뎃 해야 하자나!
용량만 늘어날것 같은 불안감.
이걸 줄여보자!
해서 시작된 나누기 곱하기 등등 쉴세 없는 계산.
대충 L M H X 순으로 3:4:6:8 의 비율을 가지고 있다는걸 앎.(사실 검색해도 나오는데 뻘짓을...)
Ldpi 는 120
Mdpi 는 160
Hdpi 는 240
XHdpi 는 360
의 값을 가지고 있다는것도 알아냄.(그러니까.. 검색하면 나온다니까..)
그래도 도출해낸 비율공식.
DisplayMetrics metrics = appresource.getContext().getResources().getDisplayMetrics();
(float)appresource.getDisplay().getWidth()/(((float)metrics.densityDpi/내가 넣은 폴더의 dpi값)*내가 생각한 안드로이드기기의 화면크기X); // X
(float)appresource.getDisplay().getHeight()/(((float)metrics.densityDpi/내가 넣은 폴더의 dpi값)*내가 생각한 안드로이드기기의 화면크기Y); // Y
이걸 내가 넣은 그림의 Width()/Height() 에 곱하여 리사이징 하니까 정상출력!
오예!! 싄난다!!!! 해결해냈음! 정말 내가 장했음!
했지만. 요즘 생각해보니 이만한 뻘짓도 없었던듯...