호구지책/Java/Android
[안드로이드] dp 를 px 변환하기
하늘의흐름
2016. 6. 13. 11:01
반응형
코드를 이용해서 변환하는 방법이 있긴 하지만,
관리측면에서보면 깔끔하지 못한 것 같다.
깔끔하게 관리하는 측면에서 한가지 팁을 소개한다.
dimensions.xml 을 활용하자.
여기에는 dp 값을 저장해서
소스코드로 불러와서 쓸 수 있게 되어있다.
이걸 쓰면 핸드폰 규격에 맞게 안드로이드에서
자동으로 변환해주므로,
굳이 코드를 이용해서 변환을 해줄 필요가 없다.
dimensions.xml이 없다면 res>values 밑에 파일을 새로 생성해서
사용하면 된다.
dimensions.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="length">20dip</dimen>
<dimen name="cart_p_ea_margin">4dp</dimen>
<dimen name="cart_p_text_margin">8dp</dimen>
<dimen name="cart_p_ea_text_margin">16dp</dimen>
<dimen name="edit_top_margin">2dp</dimen>
<dimen name="btn_ea_width">32dp</dimen>
<dimen name="btn_ea_height">48dp</dimen>
<dimen name="edit_ea_width_height">38dp</dimen>
<dimen name="cart_group_height">100dp</dimen>
</resources>
dip, dp는 동일한 것으로
둘 중 어느 것으로 해도 상관 없다.
소스 코드에는 다음과 같은 형식으로 불러온다.
(int)형변환이 없이 불러오게 되면 float타입으로
리턴이 되기 때문에 int형변환이 필요하다.
int cart_p_ea_margin = (int)getResources().getDimension(R.dimen.cart_p_ea_margin);
이렇게 사용하면 변환하는 코드를 쓸 필요없이
변환이슈가 해결된다.
반응형