저는 DroidX를 사용하여 카메라 미리보기 이미지를 사용하는 앱을 개발하고 있습니다. 내가 사용하고있는 코드는 웹의 여러 위치에서 발견되지만 일반적인 메소드 "getBestPreviewSize (width, height, camera.parameters)"가 표준 decodeYUV420SP 메소드가 널 포인터 예외로 실패하는 작은 크기를 반환하고 있음을 발견했습니다.GetSupportedPreviewSize가 역 너비와 높이를 반환합니다.
일부 디버깅 내 DroidX에 대한 supportedPreviewSizes이 계시 :
- 144H X 176w
- 240H X 320w
- 288h X 352w
- 480h X 640w
- 480h X 720w
- 448h x 800w
- 720h x 1280w
높이 및 너비의 값은 가로보기를 제공합니다. 카메라 방향에 따라 변하지 않습니다. getBestSupportedPreviewSizes
에 전달 된 표면의 폭과 높이는 480w x 778h입니다.
카메라 매개 변수를 getBestSupportedPreviewSizes()
으로 전달하면 288 x 352 크기가 반환됩니다. 여기에 호출하는 코드입니다 - 나는 형식이 꺼져 있으면 사과 그러나 여기 간다 :
if (!cameraConfigured) {
Camera.Parameters parameters=camera.getParameters();
Camera.Size size=getBestPreviewSize(pwidth, pheight, parameters);
if (size!=null) {
parameters.setPreviewSize(size.width, size.height);
camera.setParameters(parameters);
cameraConfigured=true;
}
}
pwidth
및 pheight
는 surfaceChanged
콜백의 폭과 높이 매개 변수에서입니다. 나는 camera.setDisplayOrientation (90)을 시도했다. onResume()에서. 또한 매니페스트에 오리엔테이션 ("인물")을 넣었습니다. 이러한 시도의 4 가지 조합 중 어느 것도이 동작을 변경하지 않는 것으로 보입니다.
내 생각은 단순히 그것들을 뒤집어 씌우는 것이지만 너무 많은 레벨에서 잘못 생각합니다. 이 자유롭게 사용할 수있는 코드는 다른 많은 예에서 입증 된 것 같아서 분명히 잘못 접근하고 있습니다. 누구나이 행동에 대한 통찰력을 줄 수 있습니까?
미리 감사드립니다.
감사합니다. Daniel. 나는 약간 혼란 스럽다. 이해할 수 있도록 표면 크기를 getBestPreviewSizes()에 전달하고 미리보기 크기를 설정하는 데 가장 적합한 너비와 높이를 반환합니다. 따라서 너비가 높이보다 작 으면 (세로 모드에서와 마찬가지로) 반환 된 너비가 카메라 높이보다 작거나 반환 된 높이가 카메라 너비보다 작습니다. 그래서 getBestPreviewSize 함수의 결과에 영향을 미치지 않는지 이해하지 못합니다. 내 생각에 내가 뭘 놓치고 있니? – bob
getBestPreviewSizes() fns의 대부분 나는 온라인으로 보았을 때 너비와 높이를 사용하여 좋은 가로 세로 비율 인 미리보기 크기를 찾습니다. 종횡비는 높이와 너비를 뒤집 었는지 여부에 관계없이 동일합니다. –
이 답변을 귀하의 질문에 게시 했습니까? –