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的传感器API和屏幕方向管理。通过监听传感器事件并分析设备的倾斜和翻转角度,我们可以确定当前的设备方向,并据此调整屏幕布局。在实际开发中,还需要考虑到性能...
在Android中,这通常通过`Sensor.TYPE_ORIENTATION`(已弃用)或`Sensor.TYPE_ROTATION_VECTOR`(推荐)来获取。 1. **获取方向数据** - `Sensor.TYPE_ORIENTATION`提供了一个简单的接口,返回的是设备相对于地...
- `TYPE_ORIENTATION`:方向传感器,提供设备的方向信息(已弃用,建议使用`Sensor.TYPE_ROTATION_VECTOR`)。 - `TYPE_PRESSURE`:压力传感器,用于天气相关应用。 - `TYPE_PROXIMITY`:接近传感器,用于检测设备...
- `TYPE_ORIENTATION`:方向传感器(3) - `TYPE_PRESSURE`:气压传感器(6) - `TYPE_PROXIMITY`:接近传感器(8) - `TYPE_TEMPERATURE`:温度传感器(7) - `TYPE_ALL`:表示所有传感器(-1) - **主要的...
return ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; } else if (angleX > -225 && angleX ) { return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; } else if (angleX > 45 && angleX ) { return ...
本文将详细讲解如何使Android程序支持四种方向(横屏、竖屏、反横屏、反竖屏)的重力感应旋转。 首先,理解Android中的传感器系统至关重要。Android设备内置了多种传感器,其中包括重力感应器(Gravity Sensor)。...
通过这样的方式,开发者可以利用Android的方向传感器数据,创建各种有趣的功能,例如实时的罗盘应用、倾斜感应的游戏控制,甚至是增强现实应用。记住,由于传感器的精度和环境因素的影响,获取到的数据可能需要适当...
这涉及到Android的Sensor.TYPE_ORIENTATION,但这个API在API 26后被弃用,所以现在推荐使用Sensor.TYPE_ROTATION_VECTOR。 ```java Sensor rotationVectorSensor = sensorManager.getDefaultSensor(Sensor.TYPE_...
本文将通过一个具体的实例——“android传感器使用实例”,详细解析如何利用Android的传感器API,尤其是方向传感器,来创建一个指南针应用。由于Android模拟器不支持硬件传感器,因此所有的测试与调试都需要在真实的...
- `TYPE_ORIENTATION`: 这个常量已被废弃,现在推荐使用`SensorManager.getOrientation()`来获取设备的方向。 `Sensor`类中还有许多方法用于获取传感器的属性,如名称、厂商、灵敏度等。通常,我们并不直接创建`...
本示例"testsensor_demo"聚焦于重力感应器的应用,通过Java语言实现,帮助开发者理解如何在Android平台上处理和解析重力感应数据,并实现屏幕四个方向的旋转。 首先,我们需要导入Android的SensorManager库,这是...
6. **方向传感器** (`SENSOR_TYPE_ORIENTATION`): 提供设备的方位角、俯仰角和滚动角,常用于地图导航应用。 7. **磁场传感器** (`SENSOR_TYPE_MAGNETIC_FIELD`): 测量磁场强度,通常用于指南针功能。 8. **加速度...
在Android平台上,开发一款指南针应用是一项常见的任务,它能够帮助用户确定方向,尤其是在户外活动或者导航时非常实用。本文将深入探讨如何利用Android SDK来创建一个简单的指南针应用,基于提供的"Android指南针...
在Android 4.0之后,系统不再推荐使用方向传感器(Orientation Sensor),因为它会将加速度和磁力计数据直接转换为方向角度,而这个过程可能受到设备硬件和软件的误差影响。因此,为了更准确地获取设备姿态,我们...
在Android开发中,"Landscape模式-屏幕翻转"是一个常见的功能需求,它涉及到设备的屏幕方向感知和相应的布局适配。在这个主题中,我们将深入探讨屏幕方向的管理、传感器的使用以及如何根据用户设备的重力变化来自动...
这里,我们使用`Sensor.TYPE_PROXIMITY`来获取接近传感器,并在`onSensorChanged()`回调中处理感应到的事件: ```kotlin override fun onSensorChanged(event: SensorEvent?) { if (event?.sensor?.type == Sensor...
在Android应用开发中,姿态传感器(Orientation Sensor)是至关重要的组成部分,它允许应用程序获取设备的方向和运动信息。这个"Android应用源码之android姿态传感器源代码"是一个专门为毕业设计学习准备的示例项目...
在Android平台上,指南针定位是实现移动设备方向感知和地理定位的重要功能。它结合了磁力传感器和陀螺仪的数据,为用户提供实时的地球磁场方向信息。本篇将深入探讨指南针定位的原理、实现方式以及相关源码分析。 ...
本压缩包"安卓开发-指南针定位源码.zip"包含了实现这一功能的源代码,对于学习和理解安卓定位及方向感应器的应用非常有帮助。 首先,指南针的实现主要依赖于安卓系统的Sensor类,特别是Orientation Sensor(方向...
方向传感器(Orientation Sensor)** 方向传感器用于确定设备相对于地球的方向,包括方位角、俯仰角和滚动角。 **6. 压力传感器(Pressure Sensor)** 压力传感器可以测量大气压力的变化,可用于高度计功能,...