Android API版本兼容性

aak*_*ash 8 compatibility camera android rotation

我想我的应用程序可以在Android版本2.1和2.2上运行.在我的应用程序的一个区域,有一个肖像风格的相机 - 在两个操作系统版本上制作肖像相机预览的过程是不同的(据我所知).方法如下:

2.1:

Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
camera.setParameters(parameters);
Run Code Online (Sandbox Code Playgroud)

2.2:

camera.setDisplayOrientation(90);
Run Code Online (Sandbox Code Playgroud)

setDisplayOrientation(int)方法在API Level 8(2.2)中可用,因此不能在2.1上使用; 但是,使用2.1(Camera.Parameters)方法不会在2.2上正确旋转预览和图像.

这种不兼容性存在似乎很奇怪 - 是否有更正确的方法来实现这一目标,这将允许我针对这两个平台?

And*_*ion 5

尝试:

Camera.Parameters parameters = camera.getParameters();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
    parameters.setRotation(90);
    camera.setParameters(parameters);
} else {
    camera.setDisplayOrientation(90);
}
Run Code Online (Sandbox Code Playgroud)


Rya*_*ves 1

在 v2.2 之前,没有通用方法可以将相机方向更改为纵向模式。set("orientation", "portrait") 适用于某些设备,但不适用于其他设备。

我也觉得很奇怪。