1

すべてのデバイスでカメラをポートレート モードに保つ方法は? 私のアプリは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 およびその他の上位の電話は正常に動作します。

4

1 に答える 1