본문 바로가기

프로그래밍/안드로이드

[안드로이드/Android] 안드로이드 SurfaceView

안드로이드 SurfaceView


오늘은 안드로이드에서 그림을 그리는 방법중 SurfaceView에서 그리는 방법에 대해 정리해 보려고 합니다.


안드로이드 SurfaceView는 뷰 계층 구조 내에서 그리기 공간(Surface)를 제공하는 특수한 클래스 입니다.

SurfaceView를 만들기 위해서는 먼저 SurfaceView를 상속받은 클래스가 필요하며 SurfaceHolder.Callback을 구현해야 합니다.

다른 그리기와는 달리 SurfaceView는 SurfaceHolder을 통해서만 그리기가 가능하며 SurfaceView가 초기화 될때 getHolder()를 호출하여 SurfaceHolder을 얻고 난뒤 addCallback()을 호출해서 SurfaceHolder에게 알려주어야 합니다.


말이 무쟈게 어렵네요. 일단 간단한 코드를 통해서 하나씩 설명하도록 하겠습니다.

설명의 편의를 위해 하나의 파일안에 작성하도록 하겠습니다.

추후 필요에 따라서 파일의 양이 부담이 되신다면 따로 분리 하셔서 작성하셔도 됩니다.


SurfaceViewTest01Activity.java


아직 완성된 코드가 아니죠 좀더 추가해서 나가보도록 하겠습니다.

가장 먼저 Thread를 상속받은 내부클래스를 추가 수정해 보도록 하겠습니다.





아래에 전체 소스를 추가 하도록 하겠습니다.

실행 해보시면 생성된 이미지가 좌측 상단에서 우측 하단으로 이동되는걸 보실수가 있습니다.




이상으로 기본적인 SurfaceView에 대해서 마치도록 하겠습니다.

여기에 터치 이벤트 등을 추가하시면 간단한 게임을 만들기 위한 기초작업으로 참고하셔도 좋을듯 싶습니다.


추가적인 의문사항이나 궁금하신 사항이 있으시면 댓글달아 주세요.^^