surfaceview 예제

이 콜백은 SurfaceHolder.addCallback 메서드를 사용하여 설정됩니다. 예를 들어 surfaceHolder.addCallback(이)을 호출하여 설정했습니다. 설정SurfaceHolder() 메서드에서 열기 src/com.javacodegeeks.androidcursorexample/AndroidSurfaceViewExample.java 파일 아래 코드를 붙여넣습니다. 우리의 예는 윈도우 64 비트 또는 OS X 플랫폼에서 다음과 같은 도구를 사용합니다 : 이것은 안드로이드 안드로이드 표면뷰예의 예입니다. 따라서 이 예제에서는 SurfaceView를 사용하여 모바일 장치의 화면에 카메라 각도를 미리 보는 카메라 어플리케이션을 통해 Android SurfaceView의 사용을 살펴보겠습니다. android.view.SurfaceView는 android.view.View의 하위 클래스입니다. 그것은 안드로이드 게임 개발에서 사용자 정의보기를 만드는 데 사용됩니다. 그것은에 없습니다그리기 방법, 하지만 당신은 얻을 수 있습니다 android.view.SurfaceHolder 개체를 얻고 보기 캔버스를 잠그고, 다음에 페인트. 이 예제에서는 사용 방법을 보여 줄 것입니다. 다음에 오는 모든 코드는 이 if 문 안에 있어야 합니다. 게임에 여러 스레드가 있는 경우 스레드 관리가 훨씬 복잡해질 수 있습니다. 스레드 관리에서 강의내용은 여러 스레드로 작업 보내기를 참조하십시오.

그리기 및 화면 새로 고침 동기화와 같은 흥미로운 작업은 run() 메서드에서 발생합니다. run() 메서드 스텁 내부에서 다음을 수행합니다. 먼저 게임 스레드를 구현하는 것부터 시작합니다. . 프로젝트를 빌드, 컴파일 및 실행할 때 기본 AndroidSurfaceViewExample는 다음과 같이 표시됩니다. mRunning이 true인 동안에만 실행되는 루프를 만듭니다. 다음 코드는 모두 해당 루프 내에 있어야 합니다. 여기서 는 프로젝트 구조가 완료되면 어떻게 되는지 확인할 수 있습니다: 이 뷰(및 모든 자식)를 지정된 캔버스에 수동으로 렌더링합니다. 이 함수를 호출하기 전에 뷰가 이미 전체 레이아웃을 수행했어야 합니다. 뷰를 구현할 때이 메서드를 재정의 하는 대신 onDraw (android.graphics.canvas)를 구현 합니다. 이 메서드를 재정의해야 하는 경우 수퍼 클래스 버전을 호출합니다.

이 메서드를 재정의하는 경우 수퍼 클래스 구현을 호출해야 합니다. 공용 보이드 표면Created(SurfaceHolder 홀더)에서 카메라 서비스를 열고 카메라 매개변수를 설정하고 Surface가 생성된 시 미리 보기를 그리려고 합니다. 이클립스 IDE를 열고 파일 → 새로운 → 프로젝트 → 안드로이드 응용 프로그램 프로젝트로 이동합니다. Android에서는 모든 간단한 레이아웃 보기가 모두 모든 사용자 상호 작용에 사용되는 동일한 GUI 스레드에 그려집니다. 따라서 GUI를 빠르게 업데이트해야 하거나 렌더링에 너무 많은 시간이 걸리고 사용자 경험에 영향을 미치는 경우 SurfaceView를 사용해야 합니다.