기술과 산업/언어 및 프레임워크

안드로이드를 위한 기본 정리 (1)

B컷개발자 2013. 2. 13. 18:12
728x90

- Map, View, ViewPort

Map: 게임의 전체 배경

View: 사용자가 보는 화면

Viewport: 맵에서 화면에 보여줄 영역


->Canvas의 drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) 메서드를 이용하여 Viewport 처리

src에 viewport의 좌표

dst에 전체화면의 좌표


- DPI, DP

DPi = Dots Per Inch

Screen Density는 같은 물리적 공간 안에 얼마나 많은 픽셀이 들어가 있느냐


Low density (120dpi) : ldpi

Medium density (160dpi) : mdpi

High density (240dpi) : hdpi

Extra High density (320dpi) : xdpi


DP = Density-independent Pixel


1 dp는 160dpi(mdpi) 스크린에서 물리적으로 1 픽셀에 해당


고해상도일수록 1 dp가 많은 픽셀을 차지


xlarge screen : at least 960dp * 720dp

large screen : at least 640dp * 480dp

normal screen : at least 470dp * 320dp

small screen : at least 426dp * 320dp



px = dp * (dpi / 160)이다. 예를 들어 240dpi에서 1dp 는 1.5 physical pixel과 같다. 

dp = px / (dpi / 160)

어플리케이션의 UI를 작성할 때에는 반드시 dp 단위를 사용하여야 한다. 그래야 다양한 해상도에서의 적절한 UI를 지원할 수 있다.


- 커스텀 View


- SurfaceView

: SurfaceView는 화면 업데이트를 백그라운드 쓰레드로 수행하여 어플리케이션의 자원을 잠식하지 않고 원활하게 뷰를 업데이트


SurfaceView는 Surface(View) + SurfaceHolder(Controller)로 구성되어 있음 


728x90