Android API 版本兼容性

标签 android camera rotation compatibility

我希望我的应用程序能够在 Android 2.1 和 2.2 版本上运行。 在我的应用程序的一个区域中,有一个肖像风格的相机 - 在两个操作系统版本上生成肖像相机预览的过程是不同的(据我所知)。方法如下:

2.1:

Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
camera.setParameters(parameters);

2.2:

camera.setDisplayOrientation(90);

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

存在这种不兼容性似乎很奇怪 - 是否有更正确的方法可以让我同时针对两个平台?

最佳答案

尝试:

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

关于Android API 版本兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4236902/

相关文章:

c++ - OpenGL 让物体粘在相机上

Android Lollipop 问题 - 无法将图像从相机加载到 ImageView

Android 添加平滑的屏幕旋转效果

android - 如何获取任意矩阵的缩放值?

audio - TideKit 能否将实时视频和音频从 Android 和 IOS 摄像头和麦克风流式传输到服务器?

ios - iOS 中的动画和旋转图像

android - android中现有类中的java.lang.NoClassDefFoundError

java - 为什么 HashMap 方法返回空对象引用?

java - 如何让 SharedPreference 与 Camera.Parameters setPreviewSize 一起使用

Android 如何为整个 Activity 主要内容 View 注册 OnTouchEvent?