您好我正在创建一个应用程序,用户将手机竖立,然后围绕y轴旋转(类似于拍摄全景图)。
我需要检测旋转角度。在iOS中,使用陀螺仪传感器相当简单,但我没有找到与Android相同的运气。如果有人能指出我的方向是正确的那么好。
答案 0 :(得分:2)
假设您的Y轴指向地球的中心,您要寻找的值称为方位角。
要监控其更改,您需要为TYPE_ACCELEROMETER和TYPE_MAGNETIC_FIELD事件注册一个监听器:
mngr = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
accelerometer = mngr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
magneticField = mngr.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
int rate = SensorManager.SENSOR_DELAY_GAME; // or other
mngr.registerListener(sensorListener, accelerometer, rate);
mngr.registerListener(sensorListener, magneticField, rate);
在听众中,请致电:
float[] values = new float[3];
SensorManager.getOrientation(R, values);
float current_azimuth_val = values[0]; // <----------
注意质量。和延迟,如果您将获得的数据高度依赖硬件。
答案 1 :(得分:0)
可通过SensorManager管理各种传感器。当然,由于每个设备决定是否将特定传感器放在硬件平台上以用于其模型,因此必须检查是否存在。有些人有像iOS这样的陀螺仪,有些可以用加速度计和放大镜传感器代替。
您可以在此处开始:http://developer.android.com/guide/topics/sensors/sensors_overview.html