일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- retrofit
- 어플리케이션
- OnDraw
- HTML 기초
- onMeasure
- 프로그래밍
- view
- REST API
- Retrofit2
- Udacity Firebase
- 제약조건레이아웃
- 앱
- 네트워크 개념
- 커스텀뷰
- 레이아웃
- firebase
- 파이어베이스
- 안드로이드 통신
- CustomView
- HTML 문법
- 초보
- RESTful
- udacity
- 안드로이드프로그래밍
- 안드로이드
- 웹프로그래밍
- 제약
- gradle
- Android
- html
Archives
- Today
- Total
Polyglot's language & programming story.
CustomView #3 자바코드에서 논리적 단위 받아내서 사용하기. 본문
안드로이드에서는 dp 단위를 사용합니다. dp단위는 기기의 해상도에 따라서 픽셀(pixel)값이 달라집니다.
자바코드에서는 pixel 단위 밖에 사용하지 않습니다 스마트폰 크기에 따라서 커스텀 뷰의 크기를 달리 주고 싶다면. 논리적 단위를 받아내서 커스텀 뷰의 크기를 조절해야 합니다.
논리적 단위를 받아서 사용하는 방법은 2가지가 있습니다.
1. DisplayMetrics 객체를 이용해서 스마트폰의 크기 정보를 얻고 크기 계산하는 방법
2. 리소스에 크기를 등록해 그 값을 얻어서 사용하는 방법
이 있습니다. 그럼 각각을 알아보도록 하겠습니다.
1.DisplayMetrics 객체를 이용해서 스마트폰의 크기 정보를 얻고 크기를 계산하는 방법
m 객체를 얻고 (m.density * 원하는 값) 계산해서 원하는 값을 dp 단위로 표현이 가능합니다.
1 2 | DisplayMetrics m = getResouce().getDisplayMetrics(); int width = m.density * 10 ; // 10dp |
java code
2.리소스에 크기를 등록해 그 값을 얻어서 사용하는 방법
Value 폴더에 dimen.xml파일을 만들고
1 2 3 | < resource > < dimen name = "strokeWidth" >15dp</ dimen > </ resource > |
dimen.xml
1 | int strokeWidth = context.getResource().getDimensionPixelSize(R.dimen.strokeWidth); |
java.code
Context.getResouce().getDimensionPixelSize(R.dimen.strokeWidth); 받아서 사용이 가능하다.
'Programming > AndroidProgramming' 카테고리의 다른 글
BroadcastReceiver 예제 : 핸드폰 끄거나 킬때 음악 소리나게 하기 (0) | 2018.06.21 |
---|---|
CustomView #4 예제1 (0) | 2018.06.20 |
CustomView #2 Canvas클래스와 Paint클래스 (0) | 2018.06.19 |
CustomView #1 CustomView란? 그리고 만들어보기 (0) | 2018.06.18 |
Constraint Layout(제약 조건 레이아웃) #4 (0) | 2018.05.04 |