【发布时间】:2012-06-06 17:16:21
【问题描述】:
我想要做的是重新映射坐标系,当手机远离它的“自然”方向时。因此,当使用手机时,如果它处于横向状态,它应该读取相同的值,就好像它被纵向握持一样。
我正在检查旋转是否等于Surface.ROTATION_90,如果是,则重新映射坐标系。
我承认我不太明白如何正确地做到这一点,并且可以使用一些指导。
所以,你需要运行这两个方法:
SensorManager.getRotationMatrix(inR, I, grav, mag);
SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_Y,SensorManager.AXIS_MINUS_X, outR);
传递到这些方法需要什么?我创建了一个新的浮点数组,然后只将方向传感器数据传递给了磁场,但这不起作用。所以,我注册了加速度计和磁场传感器。将这两个数据都输入getRotatioMatrix 方法,我总是得到NullPointerException(即使JavaDoc 说某些参数可以为空)。我什至尝试将数据传递给每个参数,但仍然得到NullPointerException。
我的问题是,我需要传递给 getRotationMatrix 方法的正确数据是什么?
【问题讨论】:
标签: android orientation