我需要获取一个应用程序中相机的水平和垂直视角。我采用了stackoverflow网站上这个问题第二个答案中的方法,而不是被采纳的答案,这个方法一直运行良好。我执行以下操作:
Camera.Parameters p = Camera.open().getParameters();
然后可以调用
Math.toRadians(p.getVerticalViewAngle());
或等效的水平方法来获取视角。
这在我的Nexus 4和Samsung平板电脑上起作用,但我决定在我的Nexus 7上尝试该应用程序,但是水平和垂直角度都返回为pi。显然,这些属性的值是荒谬的。您有什么想法,为什么我会在这个设备上获得这些值?
此外,在一个可能相关的注意事项上,android.hardware.Camera
已被弃用并被 android.hardware.Camera2
取代。我无法找到使用Camera2
实现相同目标的方法,但欢迎任何关于如何实现此目标的建议。
open()
会打开设备上第一个背面摄像头,而不是唯一的摄像头(请参见文档)。 - rbennett485