저는 android devlopment에 새로 왔습니다. 카메라 앱을 만들고 있는데, 인터넷에 너무 많은 해결책이 있지만 문제가 해결되지 않았습니다. 이미지를 자동으로 캡처하여 서버에 업로드합니다. 그러나 올바른 방향으로 가로 모드로 모든 이미지를 가져옵니다. 올바른 방향으로 배치되어 있지 않습니다. 미리보기시 내 화면이 내 코드를 잘하지 않는 캡처 이미지의 우측하지만 이미지 방향을 회전하는카메라 API를 사용하여 Android 앱 만들기
공공 무효 surfaceChanged (SurfaceHolder에 홀더, INT 형식 INT w, INT의 시간) {
// Now that the size is known, set up the camera parameters and begin
// the preview.
try {
Camera.Parameters parameters= camera.getParameters();
parameters = camera.getParameters();
//camera.setParameters(parameters);
setCameraDisplayOrientation(Preview.this,0, camera, parameters);
//camera.setParameters(parameters);
parameters.getPictureSize();
parameters.setPictureSize(w, h);
parameters.getPreviewSize();
parameters.setPreviewSize(w, h);
camera.startPreview();
} catch(Exception e) {
Log.d(TAG, "Cannot start preview", e);
}
}
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camera, Camera.Parameters parameters {android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 0; break;
case Surface.ROTATION_90: degrees = 90; break;
case Surface.ROTATION_180: degrees = 180; break;
case Surface.ROTATION_270: degrees = 270; break;
}
int result;
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
//parameters.setRotation(result);
camera.setDisplayOrientation(result);
camera.setParameters(parameters);
}