Android 方向摄像机一直都是错误的
我无法在相机预览上设置正确的方向,我尝试了所有的方法,但任何方法都不管用。我想像Android应用程序一样观看预览,我的活动方向是横向,我不知道这是对还是错。在连续的一行中,我解释了我的尝试: -更改setDisplayOrientation(90),但仅当手机垂直时才起作用,当我再次更改方向时,方向错误。 -我尝试设置纵向,但当图像保存时,方向是错误的,如果我尝试使用exif all time方向为0进行更改,则不起作用。 -我看了所有的问答,一切都正常Android 方向摄像机一直都是错误的,android,layout,camera,orientation,Android,Layout,Camera,Orientation,我无法在相机预览上设置正确的方向,我尝试了所有的方法,但任何方法都不管用。我想像Android应用程序一样观看预览,我的活动方向是横向,我不知道这是对还是错。在连续的一行中,我解释了我的尝试: -更改setDisplayOrientation(90),但仅当手机垂直时才起作用,当我再次更改方向时,方向错误。 -我尝试设置纵向,但当图像保存时,方向是错误的,如果我尝试使用exif all time方向为0进行更改,则不起作用。 -我看了所有的问答,一切都正常 我想杀死我的智能手机,但它是一个物体,
我想杀死我的智能手机,但它是一个物体,没有生命。非常感谢 Android摄像头的东西非常令人沮丧,我明白这一点。请确保通读所有代码,并查看以下代码引用自:
嗯,现在我用肖像模式调整,但是预览图像有点拉长,为什么会这样?我没有边距,所有的布局都是预览。有时你必须找到一个预览大小,其比例与你的屏幕比例相匹配。我不知道为什么会发生这种情况,对不起。@Uxonith在这种情况下是怎么回事?应该是什么?@Euridice01我已经很久没有发布这篇文章了,但我假设cameraId是指前摄像头还是后摄像头。所以你应该能够从你正在使用的相机中取出它。请注意,Camera类已被弃用,取而代之的是Camera2(尽管需要API 21)。
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camera) {
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;
}
camera.setDisplayOrientation(result);
}