안드로이드 카메라 surfaceview 예제

Android SurfaceView는 뷰 계층 구조 내에 포함된 전용 드로잉 표면을 제공합니다. 이 서피스의 형식을 제어할 수 있지만 SurfaceView는 화면의 올바른 위치에 서피스를 배치합니다. 이 기능은 카메라 인스턴스를 가져와 서 우리의 CameraPreview에 연결 하는 역할을 합니다. 이것은 안드로이드 안드로이드의 예입니다. 다음 예제 코드에서는 뷰 레이아웃에 포함할 수 있는 기본 카메라 미리 보기 클래스를 만드는 방법을 보여 줍니다. 이 클래스는 카메라 미리 보기 입력을 할당하는 데 필요한 뷰를 만들고 파괴하기 위한 콜백 이벤트를 캡처하기 위해 SurfaceHolder.Callback을 구현합니다. Camera.PictureCallback은 기본 카메라가 사진을 찍고 출력 결과를 얻는 데 사용 된 경우를 파악하기위한 안드로이드의 방법입니다. 내 예제 프로젝트에서 다음과 같은 구현을 가지고 있습니다 : 그래서,이 예에서는 SurfaceView를 사용하여 모바일 장치의 화면에 카메라 각도를 미리 보는 카메라 어플리케이션을 통해 Android SurfaceView의 사용을 볼 것입니다. 이 기술은 거의 모든 카메라 피처에서 작동하며 카메라 오브젝트의 인스턴스를 가져온 후 대부분의 매개변수를 언제든지 변경할 수 있습니다. 매개 변수에 대한 변경 사항은 일반적으로 응용 프로그램의 카메라 미리 보기에서 사용자에게 즉시 표시됩니다. 소프트웨어 측면에서 매개 변수 변경은 카메라 하드웨어가 새 지침을 처리한 다음 업데이트된 이미지 데이터를 전송할 때 실제로 적용되려면 여러 프레임이 필요할 수 있습니다.

이 예제 는 안드로이드 소스 코드 파일 (CameraPreview.java)DevDaily.com «자바 소스 코드 웨어하우스»프로젝트에 포함되어 있습니다. 이 프로젝트의 목적은 당신이 «예로 안드로이드를 학습»TM을 하는 데 도움이됩니다. 카메라 설정은 줌 레벨에서 노출 보정에 이르기까지 카메라가 사진을 찍는 방식을 변경합니다. 이 예제는 미리 보기 크기만 변경합니다. 더 많은 카메라 응용 프로그램의 소스 코드를 참조하십시오. 사용자가 사진이나 비디오를 효과적으로 찍려면 장치 카메라가 보는 것을 볼 수 있어야 합니다. 카메라 미리 보기 클래스는 사용자가 사진이나 비디오를 프레임으로 캡처할 수 있도록 카메라에서 나오는 라이브 이미지 데이터를 표시할 수 있는 SurfaceView입니다. 이 콜백은 SurfaceHolder.addCallback 메서드를 사용하여 설정됩니다. 예를 들어 surfaceHolder.addCallback(이)을 호출하여 설정했습니다. 설정SurfaceHolder() 메서드에서 일반적으로 사진을 찍려면 셔터를 클릭하기 전에 사용자가 피사체의 미리 보기를 볼 수 있어야 합니다. 이렇게 하려면 SurfaceView를 사용하여 카메라 센서가 픽업하는 내용의 미리 보기를 그릴 수 있습니다.

TL;DR -이 가이드는 안드로이드 카메라 SurfaceView를 사용하여 Android 앱에서 직접 사진을 찍는 방법에 대한 자세한 예제와 세부 정보를 제공합니다. 이 예제를 개발하려면 세 가지 권한을 수행해야 합니다. 대부분의 카메라 피처에 위에 표시된 기술을 사용할 수 있습니다. 카메라.매개 변수 개체는 getSupported… () … 지원() 또는 getMax… () 기능이 지원되는지(그리고 어느 정도까지) 결정하는 방법. 사진을 찍은 후 사용자가 다른 사진을 찍기 전에 미리 보기를 다시 시작해야 합니다. 이 예제에서는 셔터 단추를 오버로드하여 다시 시작합니다.

Android 2.3(API 수준 9) 이상인 장치에서Camera.open(int)을 사용하여 특정 카메라에 액세스할 수 있습니다. 위의 예제 코드는 카메라가 두 개 이상 있는 장치의 첫 번째 후면 카메라에 액세스합니다. Android는 사용자 지정 카메라 미리 보기를 만들기 위한 표면 보기를 제공합니다. 우선 카메라와 표면 표시자의 오브젝트가 만들어집니다. Android SurfaceView 위젯은 아래와 같이 정의할 수 있습니다 — 표 1. 일반적인 카메라 기능은 도입 된 안드로이드 API 수준에 의해 정렬. 다음 레이아웃 코드는 카메라 미리 보기를 표시하는 데 사용할 수 있는 매우 기본적인 보기를 제공합니다. 이 예제에서 FrameLayout 요소는 카메라 미리 보기 클래스의 컨테이너입니다.