すべてのデバイスでカメラをポートレート モードに保つ方法は? 私のアプリは2.2以上です
私は試した
public void setRotation(int rotation) {
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;
CameraInfo cameraInfo = new Camera.CameraInfo();
Camera.getCameraInfo(cameraId, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (cameraInfo.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (cameraInfo.orientation - degrees + 360) % 360;
}
mCamera.stopPreview();
mCamera.setDisplayOrientation(result);
mCamera.startPreview();
}
しかし、サムスンのデバイスは無視しますmCamera.setDisplayOrientation(90)
編集:
これを無視して見つけたデバイス:
ギャラクシーy(GT-S5360)(Android 2.3.6)
ギャラクシーエース(GT-S5830)(Android 2.6.3)
ただし、Galaxy S2 およびその他の上位の電話は正常に動作します。