2012-06-30 6 views
5

저는 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; 
     } 
    } 

pwidthpheightsurfaceChanged 콜백의 폭과 높이 매개 변수에서입니다. 나는 camera.setDisplayOrientation (90)을 시도했다. onResume()에서. 또한 매니페스트에 오리엔테이션 ("인물")을 넣었습니다. 이러한 시도의 4 가지 조합 중 어느 것도이 동작을 변경하지 않는 것으로 보입니다.

내 생각은 단순히 그것들을 뒤집어 씌우는 것이지만 너무 많은 레벨에서 잘못 생각합니다. 이 자유롭게 사용할 수있는 코드는 다른 많은 예에서 입증 된 것 같아서 분명히 잘못 접근하고 있습니다. 누구나이 행동에 대한 통찰력을 줄 수 있습니까?

미리 감사드립니다.

답변

3

카메라에 대해 생각하는 적절한 방법은 가로 모드입니다. 즉, 세로 모드에서 생각할 때 너비와 높이가 "뒤집힌"느낌을 갖습니다.

이 함수는 getSupportedPreviewSizes() 함수의 래퍼이므로 Camera.Parameters의 함수이므로 전달 된 너비와 높이가 bestPreviewSize 함수의 결과를 변경하지 않습니다.

+0

감사합니다. Daniel. 나는 약간 혼란 스럽다. 이해할 수 있도록 표면 크기를 getBestPreviewSizes()에 전달하고 미리보기 크기를 설정하는 데 가장 적합한 너비와 높이를 반환합니다. 따라서 너비가 높이보다 작 으면 (세로 모드에서와 마찬가지로) 반환 된 너비가 카메라 높이보다 작거나 반환 된 높이가 카메라 너비보다 작습니다. 그래서 getBestPreviewSize 함수의 결과에 영향을 미치지 않는지 이해하지 못합니다. 내 생각에 내가 뭘 놓치고 있니? – bob

+0

getBestPreviewSizes() fns의 대부분 나는 온라인으로 보았을 때 너비와 높이를 사용하여 좋은 가로 세로 비율 인 미리보기 크기를 찾습니다. 종횡비는 높이와 너비를 뒤집 었는지 여부에 관계없이 동일합니다. –

+0

이 답변을 귀하의 질문에 게시 했습니까? –

관련 문제