【问题标题】:Get Android rotation angle in x-axis获取 Android 的 x 轴旋转角度
【发布时间】:2012-08-22 19:33:18
【问题描述】:

我正在试验一些 Android 功能。现在,我正在尝试获取设备的旋转角度,所以当我在画布上显示一张笑脸位图时,它总是看起来“笔直”。

为此,我只需要获取 x 轴旋转角度(我猜),但我找不到如何实现它。希望您能够帮助我。谢谢。

【问题讨论】:

  • 如果我在手机放在平面上使用您的应用程序时会发生什么?还会好吗?
  • 我已经在“平坦”的表面上对其进行了测试。即使有最轻微的倾向,它也会做出正确的反应。此外,我做这个测试的目的可能不是在平面上使用,但是谢谢!

标签: android android-sensors


【解决方案1】:

找到更好的答案! (感谢forgivegod帮助我开始这个!)

ORIENTATION 现在已被弃用并用于许多资源。另外,它的工作原理是参考磁北,这不是设备的纯粹旋转,而是实际上始终指向北方。

通过使用ACCELEROMETER,可以通过这种方式计算具有值[0]和[1]的设备的旋转角度:

    public void onSensorChanged(SensorEvent event) {
        // TODO Auto-generated method stub
        if (event.sensor != mSensor)
            return;

        aX= event.values[0];
        aY= event.values[1];
        //aZ= event.values[2];
        angle = Math.atan2(aX, aY)/(Math.PI/180);
    }

也许这可以在将来帮助其他人。非常感谢!

【讨论】:

  • 如果您的设备是静止的,那是真的。
【解决方案2】:

您可以使用方位角、俯仰角和滚动角。不确定哪一个与您的“x 轴”有关,但我认为它的方位角。

有用链接的时间:

  1. http://www.workingfromhere.com/blog/2009/03/30/orientation-sensor-tips-in-android/
  2. http://marakana.com/forums/android/examples/43.html
  3. http://marakana.com/static/tutorials/SensorDemo.zip

【讨论】:

  • 完美运行!方位角有点慢,但确实有效!非常感谢。只有一件事让我担心,因为它说 SensorListener 和 SENSOR_ORIENTATION 现在已弃用......这意味着有一种新方法可以做到这一点,对吧?
  • 我必须补充。考虑到 Marakana 的示例,我对其稍作修改,改为使用 SensorEventListener 和 Sensor.TYPE_ORIENTATION。响应速度相当快,现在唯一不推荐使用的对象是 Sensor.TYPE_ORIENTATION。我现在就这样吧,因为新的“解决方案”相当复杂,并且给出了相同的结果。谢谢大家!
  • 请注意 SENSOR_ORIENTATION 已弃用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多