안드로이드 개발 정보
(글 수 1,064)
안녕하세요
언제나 프로젝트를 진행하다보면 -_- 그놈에 해상도 차이와 dp 차이 때문에 짜잉이 납니다.
보통은 xml에서 dp로 코딩을 하지만 코드에서 x y 값을 구해야 할때가 있는데.
그럴때마다 찾아서 뭐 하긴 그렇고 해서 그냥 간단하게 하나 만들어 보았습니다.
단순 wrapper 입니다만!!
필요하신분 유용하게 쓰셨으면 좋겠네요!!
인터넷에 문서만 보고 쓴거라 버그가 있다면 알려주세요!!
사용예
----
DPIUtil.getInstance().init(this);
float px = DPIUtil.getInstance().dp2px(100);
float dp = DPIUtil.getInstance().px2dp(150);
System.out.println(DPIUtil.getInstance().getMetricsInfo());
System.out.println("result : " + px);
System.out.println("result : " + dp);
----
결과
----
04-17 17:50:49.584: I/System.out(21046): densityDpi : 240
04-17 17:50:49.588: I/System.out(21046): density : 1.5
04-17 17:50:49.588: I/System.out(21046): W : 480, H : 800
04-17 17:50:49.588: I/System.out(21046): result : 150.0
04-17 17:50:49.588: I/System.out(21046): result : 100.0
----
init(Activity)
float dp2px(float)
float px2dp(float)
DisplayMetrics getMetrics();
String getMetricsInfo();
init으로 초기화 하고
두 함수를 마구 써주시면 됩니다.
코드 보시면 아시겠지만 싱글턴 입니다 :D
나머지는 정보 얻어오는거니 원하실때 쓰세요!!
TypedValue 이용해서 COMPLEX_UNIT_DIP 이용해도 가능한거 아닌가요?
이걸랑 값이 다르게 나오나..? 흠.. 한번 비교해봐야겠네용