티스토리 뷰
DP - Density Indepence Pixel 원래는 DIP의 줄임말이 DP이다.
DPI - Dot Per Inch
1인치당 몇개의 점이 들어가는가?(해상도의 기준 단위)
1인치 정사각형에 점이 많이 들어갈수록 해상도가 높은것이다.
안드로이드는 굉장히 개방적인 시스템이기 때문에, 다양한 디바이스가 존재하며 디바이스 별로 해상도가 모두 다르기 때문에 굉장히 다양한 해상도가 존재한다.
이 모든 기기에서 어떤 뷰의 크기를 일정하게 맞춰주게 하기 위해서 안드로이드에서는 DP = DIP 라는 밀도 독립 픽셀이라는 단위를 사용한다.
이 DP 단위를 사용하게 되면 갤럭시에서 사용하던 이미지뷰의 크기가 넥서스폰에서 사용하던 이미지뷰의 크기와 일치하게 만들어 줄 수 있다.
이미지 뷰의 가로 길이를 10dp라고 해보자. 그리고, 해상도는 갤럭시가 넥서스보다 더 좋다고 해보자. 해상도가 높다는것은, 좁은 공간에 더 많은것을 표현할수 있다는 것이고 해상도가 낮은 화면에서 보다 더 좁은 공간에 많은 것을 표현 할 수 있다.
1dp의 기준은 160dpi에서의 1픽셀을 기준으로 잡는다. 즉 1인치에 160개의 점이 들어가는 화면에서의 1픽셀(1개의점)이 1dp와 똑같다.
그렇다면 320dpi 화면에서의 1dp는 2픽셀이다. 즉, 갤럭시 폰이 넥서스 보다 좀 더 사물을 자세히 표현할수 있는데, 갤럭시에서의 2개의 점(2개의 픽셀)이 넥서스에서의 1개의 점(1개의 픽셀)의 크기와 똑같다는것이다.
이렇게 dp라는 단위를 도입함으로써 굉장히 많이 존재하는 안드로이드 기기간 화면 호환을 맞춰준것이라고 할 수 있다.
갤럭시에서 120dp로 설정한 사각형의 크기는 240픽셀을 차지한다. 그리고 사각형의 크기를 똑같이 120dp로 설정했지만 넥서스 폰에서는 180px만을 차지한다.
얼핏 보면, 갤럭시가 점을 더 많이 차지하기 때문에 안좋은게 아닌가? 하고 생각할 수 있지만
만약 갤럭시와 넥서스의 해상도 차이가 2배라면
넥서스에서의 2개의 점의 크기= 갤럭시에서 1개의 점의 크기이다.
하지만 위의 그림에서는 실제 해상도가 2배차이까지는 나지 않기 떄문에 갤럭시에서는 240px, 넥서스에서는 180px인것이다.
즉 dp라는 단위를 쓰게 되면 어떤 핸드폰으로 앱을 켜든지 똑같은 크기로 확인 할 수 있다.
dp를 사용하면 기기의 해상도에 따라 똑같은 크기로 맞춰주기 위해서 뷰들이 확대/축소 된다.
'컴퓨터 공학과 졸업 > 안드 개발 기록' 카테고리의 다른 글
하단바 만들기 (0) | 2018.07.12 |
---|---|
프래그먼트 (0) | 2018.07.12 |
네비게이션 드로어 (0) | 2018.07.04 |
[퍼옴] RecyclerView (0) | 2018.07.03 |
AsyncTask (0) | 2018.06.29 |
- Total
- Today
- Yesterday
- type alias
- mobx
- storybook
- await
- Babel
- reactdom
- async
- atomic design
- reflow
- Polyfill
- es6
- Action
- reducer
- server side rendering
- react
- webpack
- useRef
- rendering scope
- useEffect
- promise
- state
- Next.js
- props
- return type
- react hooks
- typescript
- computed
- hydrate
- javascript
- design system
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |