안드로이드 개발 질문/답변
(글 수 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도 회전시켜져서 보입니다.
이것을 어떻게 해결해야하는지 알고 싶습니다.
프리뷰 코드 작성시 따로 잡아줘야 하는 옵션이라도 있나요?
테스트 폰은 모토로이입니다.



