안드로이드 카메라 줌 예제

카메라 위치를 변경할 때 유연성을 최대한 활용하려면 카메라를 지정된 위치로 이동하는 CameraUpdate를 제공하는 CameraUpdate.newCameraPosition(카메라 포지션)을 사용합니다. 카메라 포지션은 새 CameraPosition() 또는 새 CameraPosition.Builder를 사용하여 직접 또는 CameraPosition.Builder를 사용하여 직접 얻을 수 있습니다. 하드웨어 카메라 버튼을 누르면이 응용 프로그램을 실행하려면 설정 -> 앱 -> 카메라 -> 카메라 -> 비활성화에서 내장 된 카메라 응용 프로그램을 사용하지 않도록 설정해야 할 수 있습니다. 참고: 화면 크기와 밀도로 인해 일부 장치는 가장 낮은 확대/축소 수준을 지원하지 않을 수 있습니다. GoogleMap.getMinimumZoomLevel()을 사용하여 맵에 대해 가능한 최소 줌 레벨을 얻을 수 있습니다. 뷰포트에서 전체 세계를 표시해야 하는 경우 라이트 모드를 사용하는 것이 더 좋을 수 있습니다. 다음 섹션과 같이 라이브 이미지 미리 보기를 시작하려면 미리 보기 클래스를 Camera 개체에 전달해야 합니다. CameraUpdateFactory.scrollBy(부동, 부동)는 맵이 지정된 픽셀 수만큼 이동되도록 카메라의 위도와 경도를 변경하는 CameraUpdate를 제공합니다. 양수 x 값을 사용하면 카메라가 오른쪽으로 이동하여 맵이 왼쪽으로 이동한 것처럼 보입니다.

양수 y 값으로 인해 카메라가 아래로 이동하여 맵이 위로 이동한 것처럼 보입니다. 반대로 음수 x 값으로 인해 카메라가 왼쪽으로 이동하여 맵이 오른쪽으로 이동한 것처럼 보이고 음수 y 값은 카메라를 위로 이동하게 합니다. 스크롤은 카메라의 현재 방향을 기준으로 합니다. 예를 들어 카메라의 베어링이 90도인 경우 동쪽은 „위쪽”입니다. 카메라 오브젝트의 인스턴스를 가져오는 것은 카메라를 직접 제어하는 프로세스의 첫 번째 단계입니다. Android의 자체 카메라 응용 프로그램처럼 카메라에 액세스하는 권장 방법은 onCreate()에서 시작된 별도의 스레드에서 카메라를 여는 것입니다. 이 방법은 시간이 걸릴 수 있으며 UI 스레드를 수렁에 끼칠 수 있으므로 좋은 방법입니다. 보다 기본적인 구현에서는 카메라 열기를 onResume() 메서드로 연기하여 코드 재사용을 용이하게 하고 제어 흐름을 단순하게 유지할 수 있습니다. Camera.open() 호출은 카메라가 다른 응용 프로그램에서 이미 사용 중이면 예외를 발생하므로 시도 블록으로 래핑합니다. 참고: 맵이 레이아웃을 거친 후 카메라를 이동하는 데 사용될 경우 더 간단한 방법newLatLngBounds(경계, 패딩)만 사용하여 CameraUpdate를 생성합니다.

레이아웃 중에 API는 경계 상자를 올바르게 투영하는 데 필요한 맵의 표시 경계를 계산합니다. 이에 비해, API가 인수에서 표시 경계를 계산하기 때문에, 맵이 레이아웃을 거치기 전에도 언제든지 보다 복잡한 방법 newLatLngBounds (경계, 너비, 높이, 패딩)에 의해 반환 된 CameraUpdate를 사용할 수 있습니다. 전달.

Posted in Bez kategorii