안드로이드 개발 질문/답변
(글 수 45,052)
import java.io.*; import java.util.*; import android.content.*; import android.hardware.*; import android.hardware.Camera.Size; import android.view.*; import android.util.*; public class Preview extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder mHolder; Camera mCamera; Scope mScope; public Preview (Context context, AttributeSet attrs) { super(context, attrs); mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated (SurfaceHolder holder) { mCamera = Camera.open(); try { mCamera.setPreviewDisplay(mHolder); } catch (IOException e) { mCamera.release(); mCamera = null; } } public void surfaceDestroyed (SurfaceHolder holder) { if (mCamera != null) { mCamera.stopPreview(); mCamera.release(); mCamera = null; } } public void surfaceChanged (SurfaceHolder holder, int format, int width, int height) { Camera.Parameters params = mCamera.getParameters(); List<Size> arSize = params.getSupportedPreviewSizes(); if (arSize == null) { params.setPreviewSize(width, height); } else { int diff = 10000; Size opti = null; for (Size s : arSize) { if (Math.abs(s.height - height) < diff) { diff = Math.abs(s.height - height); opti = s; } } params.setPreviewSize(opti.width, opti.height); } params.set("orientation", "portrait"); mCamera.setParameters(params); mCamera.startPreview(); } void requestedAutoFocus () { if (mCamera != null) { mCamera.autoFocus(null); } } }
카메라 프리뷰를 작성하여 폰에 올리면,
실제와 다르게 좌측으로 90도 회전시켜져서 보입니다.
이것을 어떻게 해결해야하는지 알고 싶습니다.
프리뷰 코드 작성시 따로 잡아줘야 하는 옵션이라도 있나요?
테스트 폰은 모토로이입니다.