我使用表面视图来预览我的应用程序中的前置摄像头视图,让用户拍摄他/她的脸。我希望预览的方向与设备方向同步,因此当用户旋转设备时,相机预览也会旋转。以下是我的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 度的。我怎样才能使预览总是直接向上?(除了反向肖像,我认为手机无论如何都不会旋转)。我不在乎图像是否镜像,很多人似乎对此有疑问,但这与我的应用程序无关。我只是希望它总是有顶部,你知道......在顶部:D。