반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- github
- github submodule
- 서브모듈 pull
- Android Studio
- 내 맘대로 정리한 안드로이드
- 티스토리
- 안드로이드개발
- 게임개발
- 타이쿤
- 안드로이이드 submodule
- 서브모듈 sourcetree
- 목서버
- 카페오냥
- GIT
- firebase
- Kotlin
- submodule sourcetree
- 앱개발
- Unity
- 2d게임
- 앱
- java
- 안드로이드
- 쿼터뷰
- 코틀린
- gitlab submodule
- Android
- 개발
- 유니티
- DataBinding
Archives
- Today
- Total
Uing? Uing!!
[안드로이드 팁] dp to px 변환하는 방법 본문
반응형
dp to px
안드로이드에서 크기를 다루다 보면 Dp(Density-Independent Pixel)에서 px(pixel)로 변환해 사용해야 하는 경우가 있다.
dp에서 px로 변화하는 방법으로는 두 가지가 있다.
1. 전역 함수 정의하기
아래와 같은 dp2px 함수를 UIUtil 등의 object 안에 정의하거나, 또는 그냥 전역 함수로 정의하여 사용할 수 있다.
fun dp2px(dp: Float, context: Context) = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, dp, context.resources.displayMetrics)
val px = dp2px(dp, context)
2. Resources.getDimensionPixelSize() 사용하기
이 방법은 사용할 dimen값들을 미리 values > dimens.xml 등의 파일을 생성해 저장해 놓고,
Resources.getDimensionPixelSize(리소스 id)로 변환해 가져오는 방식이다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="height">100</dimen>
</resources>
val px = resources.getDimensionPixelSize(R.dimen.height)
더 나은 방법은?
개인적인 의견으로는 dimen값이 특정 요소들의 height나 width값이나 그리드 간 간격과 같이,
어딘가에서 반복적으로 사용되는 값이라면 dimen으로 가지고 있는 편이 낫다고 생각한다.
재사용되는 값은 여러 곳에서 저장된 리소스를 참조하는 편이 나중에 한 번에 수정하기에 용이하기 때문이다.
따라서 반복되는 값이라면 2번의 방법을 사용하는 편이 좋다고 생각한다.
반응형
'Android' 카테고리의 다른 글
[안드로이드 삽질기록] java.lang.AbstractMethodError가 발생하는 경우 (0) | 2020.12.17 |
---|---|
[안드로이드 팁] WebView에서 window.close() 이벤트 받아서 창 닫기 (0) | 2020.12.17 |
[안드로이드 팁] Resources.getIdentifer(): 변수값을 조합해서 리소스 아이디 받아오기 (0) | 2020.12.11 |
[내맘대로 정리한 안드로이드] ANR(Application Not Responding)이란? (0) | 2020.11.28 |
[안드로이드 팁] Java로 디컴파일(Decompile)해서 코드 이해하기 (0) | 2020.11.17 |
Comments