android加速度传感器Accelerometer
16lz
2021-01-23
android传感器的坐标系统和其2D设计并不相同,坐标系如下图:
使用SensorManager对象注册传感器监听器后,在onSensorChanged方法内可以得到SensorEvent的一个对象。
而SensorEvent对象有一个重要的成员变量public final float[] values,其定义如下:
public final float[] values
The length and contents of the values
array depends on which sensor
type is being monitored
假若注册监听器是加速度传感器的话,其values中内容为
Sensor.TYPE_ACCELEROMETER
:
All values are in SI units (m/s^2) // si是国际单位的意思,就是和高中学加速度一样的单位
values[0]: Acceleration minus Gx on the x-axis
values[1]: Acceleration minus Gy on the y-axis
values[2]: Acceleration minus Gz on the z-axis
可以看出values[0~2]的值是某方向加速度(Acceleration)减去该方向的重力值(Gx、Gy、Gz),所以手机静止时其范围是[-10,10]
举例说明,手机屏幕朝上平放,则 values[0]=0,values[1]=0,values[2]=10
由于手机静止不动所有方向都没有加速度,手机平放产生了向下的重力加速度,即Gz=-10(因为重力方向与z轴正向相反),所以相减后得10
更多相关文章
- 通過XML設置屏幕方向(android:screenOrientation)详解
- Android Studio App设置线性布局LinerLayout控件垂直/水平方向排
- Android UI 控件 和 对应监听器详细总结
- android 传感器获取方向总结
- android修改重力感应方向
- Android studio百度地图SDK开发 2020最新超详细的Android 百度地
- android camera preview方向
- Android onSensorChanged 水平感应(TYPE_ORIENTATION)的方向
- android 屏幕方向总结