2012-03-29 98 views
2

我正在研究显示相机预览的Android应用程序。理想情况下,我希望该应用在肖像模式下工作,这意味着我需要处理相机预览图像的旋转。Android 2.2。人像相机预览

我只需要支持API级别8(Android版本2.2)及以上,这样我就可以使用Camera.setDisplayOrientation设置方位,以及该方法的API文档包括setDisplayOrientation函数,我想要做什么。唯一的问题是它使用API​​ Level 9 Camera.CameraInfo来获取相机相对于设备的方向(可能是为了处理横向vs纵向设备)。

因此,假设我可以为所有8级设备设置setDisplayOrientation(90)并仅为新设备使用CameraInfo.orientation,那么安全吗?

回答

1

作为后续任何人发现这一点 - 我没有找到一个明确的答案,所以我做了上述建议(setDisplayOrientation(90))为2.2设备,并发布了应用程序。它有大约70,000次下载,并且没有相机显示屏错误旋转90度的报告,所以看起来这是一个合理的解决方案。

0

我张贴的链接Android的开发者帮助相机件事: http://developer.android.com/guide/topics/media/camera.html

关于具体的问题,我在API接过来一看,我猜,因为surfaceChanged方法被调用每次表面变化,设备只有2个位置,你可能是对的,因为你在surfaceChanged方法中实现了更正的方法。尝试实施它,如果你不能在问题后得到它,我会尽力帮助更多。

+0

我的问题是,这是否是一种安全的方式来做到这一点对所有** ** V2 .2设备。它在我的HTC Desire上运行良好,我只是不知道是否有默认的v2.2设备(例如),这可能不适用。 – 2012-04-03 02:52:23

+0

API是通用的。如果它对你的工作正常,它应该适用于其他2.2型号。是的,在我看来(6个月编程)这样做很安全。 – Tomax 2012-04-09 15:05:44

2

我已经试过上的宏达电Evo Shift键设置为API8项目如下(伟大的工作):

Configuration cfg = mContext.getResources().getConfiguration(); 
if (cfg.orientation == Configuration.ORIENTATION_PORTRAIT) { 
    mCamera.setDisplayOrientation(90); 
}