안녕하세요. 제임스 입니다.
Android 개발 중에 DP, SP, PX 등의 치수 단위를 많이 보게 됩니다.
일전에 개념 정리한 내용이 있으니 참조 하시면 좋을 것 같구요.
http://jamesdreaming.tistory.com/41
이번에는 이 단위 변환 방법에 대해 정리해 보겠습니다.
■ DP 를 PX 로 변환
import android.util.DisplayMetrics;
import android.util.TypedValue;
public static int convertDpToPixels(float dp, Context context) {
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
return px;
}
■ SP 를 PX 로 변환
public static int convertSpToPixels(float sp, Context context) {
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());
return px;
}
■ DP 를 SP 로 변환???
public static int convertDpToSp(float dp, Context context) {
int sp = (int) (convertDpToPixels(dp, context) / (float) convertSpToPixels(dp, context));
return sp;
}
코드를 위와 같이 작성 하긴 했지만 실제로 사용할 일이 없습니다.
sp 는 텍스트 사이즈를 정의 할때 사용하고 dp 는 그 이외 모든 사이즈를 정의할때 사용합니다.
만약 텍스트 사이즈를 dp 로 정의 했다면 문제가 될 수도 있겠지만 sp 로 정의 했다면 특별히 문제가 될 것은 없을 것이며 변환식 자체가 의미 없습니다.
▼ 도움이 되셨다면 로그인이 필요 없는 ▼
▼ 하트 클릭 한번 부탁 드립니다 ▼
감사합니다 :D
'Android (Java)' 카테고리의 다른 글
[ 안드로이드 코딩_020 ] 안드로이드 레이아웃 TableLayout (4) | 2017.10.16 |
---|---|
[ 안드로이드 코딩_018 ] 안드로이드 레이아웃 RelativeLayout (4) | 2017.10.12 |
[안드로이드 스튜디오] Could not find com.android.tools.build:gradle:3.0.0-beta6 (6) | 2017.09.26 |
[안드로이드 코딩_017] 안드로이드 레이아웃 Linear Layout (5) | 2017.09.23 |
[안드로이드 코딩_016] 안드로이드 뷰 계층 구조 (4) | 2017.09.22 |