`
Goro
  • 浏览: 173476 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android onSensorChanged 水平感应(TYPE_ORIENTATION)的方向

阅读更多
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
分享到:
评论

相关推荐

    根据重力感应旋转屏幕-支持3个方向旋转-有代码解释

    总的来说,实现根据重力感应旋转屏幕涉及到Android的传感器API和屏幕方向管理。通过监听传感器事件并分析设备的倾斜和翻转角度,我们可以确定当前的设备方向,并据此调整屏幕布局。在实际开发中,还需要考虑到性能...

    android感应器开发之加速度、方向传感器

    在Android中,这通常通过`Sensor.TYPE_ORIENTATION`(已弃用)或`Sensor.TYPE_ROTATION_VECTOR`(推荐)来获取。 1. **获取方向数据** - `Sensor.TYPE_ORIENTATION`提供了一个简单的接口,返回的是设备相对于地...

    Android 重力感应资料

    - `TYPE_ORIENTATION`:方向传感器,提供设备的方向信息(已弃用,建议使用`Sensor.TYPE_ROTATION_VECTOR`)。 - `TYPE_PRESSURE`:压力传感器,用于天气相关应用。 - `TYPE_PROXIMITY`:接近传感器,用于检测设备...

    安卓摇一摇传感器相关-根据重力感应旋转屏幕支持4个方向旋转.rar

    return ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; } else if (angleX &gt; -225 && angleX ) { return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; } else if (angleX &gt; 45 && angleX ) { return ...

    重力感应旋转屏幕支持4个方向旋转

    本文将详细讲解如何使Android程序支持四种方向(横屏、竖屏、反横屏、反竖屏)的重力感应旋转。 首先,理解Android中的传感器系统至关重要。Android设备内置了多种传感器,其中包括重力感应器(Gravity Sensor)。...

    Android利用方向传感器获得手机的相对角度实例说明

    通过这样的方式,开发者可以利用Android的方向传感器数据,创建各种有趣的功能,例如实时的罗盘应用、倾斜感应的游戏控制,甚至是增强现实应用。记住,由于传感器的精度和环境因素的影响,获取到的数据可能需要适当...

    android指南针代码

    这涉及到Android的Sensor.TYPE_ORIENTATION,但这个API在API 26后被弃用,所以现在推荐使用Sensor.TYPE_ROTATION_VECTOR。 ```java Sensor rotationVectorSensor = sensorManager.getDefaultSensor(Sensor.TYPE_...

    android传感器使用实例

    本文将通过一个具体的实例——“android传感器使用实例”,详细解析如何利用Android的传感器API,尤其是方向传感器,来创建一个指南针应用。由于Android模拟器不支持硬件传感器,因此所有的测试与调试都需要在真实的...

    Android基于Sensor感应器获取重力感应加速度的方法

    - `TYPE_ORIENTATION`: 这个常量已被废弃,现在推荐使用`SensorManager.getOrientation()`来获取设备的方向。 `Sensor`类中还有许多方法用于获取传感器的属性,如名称、厂商、灵敏度等。通常,我们并不直接创建`...

    testsensor_demo.rar_android开发_Java_

    本示例"testsensor_demo"聚焦于重力感应器的应用,通过Java语言实现,帮助开发者理解如何在Android平台上处理和解析重力感应数据,并实现屏幕四个方向的旋转。 首先,我们需要导入Android的SensorManager库,这是...

    Android的传感器系统

    6. **方向传感器** (`SENSOR_TYPE_ORIENTATION`): 提供设备的方位角、俯仰角和滚动角,常用于地图导航应用。 7. **磁场传感器** (`SENSOR_TYPE_MAGNETIC_FIELD`): 测量磁场强度,通常用于指南针功能。 8. **加速度...

    Android指南针

    在Android平台上,开发一款指南针应用是一项常见的任务,它能够帮助用户确定方向,尤其是在户外活动或者导航时非常实用。本文将深入探讨如何利用Android SDK来创建一个简单的指南针应用,基于提供的"Android指南针...

    利用android手机自带的加速度传感器和磁场传感器确定手机的姿态

    在Android 4.0之后,系统不再推荐使用方向传感器(Orientation Sensor),因为它会将加速度和磁力计数据直接转换为方向角度,而这个过程可能受到设备硬件和软件的误差影响。因此,为了更准确地获取设备姿态,我们...

    landscape模式-屏幕翻转.zip

    在Android开发中,"Landscape模式-屏幕翻转"是一个常见的功能需求,它涉及到设备的屏幕方向感知和相应的布局适配。在这个主题中,我们将深入探讨屏幕方向的管理、传感器的使用以及如何根据用户设备的重力变化来自动...

    Android Studio的接近传感器应用

    这里,我们使用`Sensor.TYPE_PROXIMITY`来获取接近传感器,并在`onSensorChanged()`回调中处理感应到的事件: ```kotlin override fun onSensorChanged(event: SensorEvent?) { if (event?.sensor?.type == Sensor...

    Android应用源码之android姿态传感器源代码-IT计算机-毕业设计.zip

    在Android应用开发中,姿态传感器(Orientation Sensor)是至关重要的组成部分,它允许应用程序获取设备的方向和运动信息。这个"Android应用源码之android姿态传感器源代码"是一个专门为毕业设计学习准备的示例项目...

    指南针定位

    在Android平台上,指南针定位是实现移动设备方向感知和地理定位的重要功能。它结合了磁力传感器和陀螺仪的数据,为用户提供实时的地球磁场方向信息。本篇将深入探讨指南针定位的原理、实现方式以及相关源码分析。 ...

    安卓开发-指南针定位源码.zip

    本压缩包"安卓开发-指南针定位源码.zip"包含了实现这一功能的源代码,对于学习和理解安卓定位及方向感应器的应用非常有帮助。 首先,指南针的实现主要依赖于安卓系统的Sensor类,特别是Orientation Sensor(方向...

    Android传感器编程入门

    方向传感器(Orientation Sensor)** 方向传感器用于确定设备相对于地球的方向,包括方位角、俯仰角和滚动角。 **6. 压力传感器(Pressure Sensor)** 压力传感器可以测量大气压力的变化,可用于高度计功能,...

Global site tag (gtag.js) - Google Analytics