【问题标题】:Android API Version CompatibilityAndroid API 版本兼容性
【发布时间】:2010-11-21 07:41:43
【问题描述】:

我希望我的应用同时在 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 上正确旋转预览和图像。

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

【问题讨论】:

    标签: android camera rotation compatibility


    【解决方案1】:

    试试:

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

    【讨论】:

      【解决方案2】:

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

      我也觉得很奇怪。

      【讨论】:

        【解决方案3】:

        尝试在 onConfigurationChanged 回调中调用Activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)从 Android 2.2(或 2.3)中发现 source codeCamera.setDisplayOrientation 方法并尝试在您的应用。

        另请参阅 related question at stackoverflow.com

        【讨论】:

          猜你喜欢
          • 2019-12-09
          • 2019-08-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多