我希望我的应用能够在Android版本2.1和2.2上运行。 在我的应用程序的一个区域,有一个肖像风格的相机 - 在两个操作系统版本上制作肖像相机预览的过程是不同的(据我所知)。方法如下:
Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
camera.setParameters(parameters);
camera.setDisplayOrientation(90);
setDisplayOrientation(int)方法在API Level 8(2.2)中可用,因此不能在2.1上使用;但是,使用2.1(Camera.Parameters)方法不能在2.2上正确旋转预览和图像。
这种不兼容性存在似乎很奇怪 - 是否有更正确的方法可以让我以两个平台为目标?
答案 0 :(得分: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);
}
答案 1 :(得分:1)
在v2.2之前,没有通用的方法可以将相机更改为纵向模式。集合(“方向”,“纵向”)适用于某些设备,而不适用于其他设备。
这对我来说似乎很奇怪。
答案 2 :(得分:1)
尝试在onConfigurationChanged回调中调用Activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)或从Android 2.2(或2.3)发现source code Camera.setDisplayOrientation方法并尝试在你的应用程序中实现类似的东西。
另请参阅stackoverflow.com上的related question