Android(安卓)onSensorChanged 水平感应(TYPE_ORIENTATION)的方向
16lz
2022-04-22
public void onSensorChanged(SensorEvent event) {if (event.sensor.getType() != Sensor.TYPE_ORIENTATION|| event.values.length < 3)return;long currentTime = System.currentTimeMillis();if ((currentTime - lastUpdate) > 100) {long diffTime = (currentTime - lastUpdate);lastUpdate = currentTime;float x = event.values[SensorManager.DATA_X];float y = event.values[SensorManager.DATA_Y];float z = event.values[SensorManager.DATA_Z];}}
x<0 x>0
^
|
+-----------+--> y>0
| |
| |
| |
| | / z<0
| | /
| | /
O-----------+/
|[] [ ] []/
+----------/+ y<0
/
/
|/ z>0 (toward the sky)
O: Origin (x=0,y=0,z=0)
手机放水平了,
屏幕左方向下倾斜 event.values[SensorManager.DATA_Z] 大于0
屏幕上方向下倾斜 event.values[SensorManager.DATA_Y] 大于0
就算Android的屏幕变成横幅时,上面规则一样适用。 只不过这时屏幕左方是短的一测。
event.values[SensorManager.DATA_X]是屏幕水平,然后东南西北转的时候变化的。
0=North, 90=East, 180=South, 270=West
更多相关文章
- android 屏幕方向总结
- android 获取和设置屏幕亮度
- Android屏幕休眠和唤醒
- android开发常用问题总结
- android唤醒屏幕/保持屏幕唤醒
- Android错误集
- android获取设备屏幕大小的方法
- Android监听屏幕屏幕锁屏与解锁
- Android(安卓)屏幕截图 代码