ユーザーが自分の顔の写真を撮れるように、アプリでフロント カメラ ビューをプレビューするために surfaceview を使用します。プレビューの向きをデバイスの向きと同期させたいので、ユーザーがデバイスを回転させると、カメラのプレビューも回転します。以下は私のsurfaceCreatedです:
@Override
public void surfaceCreated(SurfaceHolder holder) {
camera = openFrontFacingCamera();
if (camera != null) {
try {
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(cameraPreview.getHolder());
camera.startPreview();
} catch (Exception e) {
e.printStackTrace();
}
} else {
myActivity.finish();
}
}
これにより、デバイスが回転したときにプレビューが回転しますが、正しい方法ではありません。携帯電話を縦向きに持っていれば、このコードで問題ありません。ただし、どちらのランドスケープ モードでも、プレビューは 90 度ずれています。プレビューが常に真っ直ぐになるようにするにはどうすればよいですか? (逆の縦向きを除いて、とにかく電話がそのように回転するとは思いません)。画像がミラーリングされているかどうかは気にしません。多くの人が問題を抱えているようですが、私のアプリには関係ありません。私はそれが常に上面を持っていることを望んでいます.