`

Android重力感应简介

 
阅读更多

Android重力感应简介

 

 

 

Android系统手机有很多重力感应游戏的应用,包括弹球,赛车等等游戏,android开发中共有8中传感器,包括:

   传感器名称如下:
       加速度传感器(accelerometer)
       陀螺仪传感器(gyroscope)
       环境光照传感器(light)
       磁力传感器(magnetic field)
       方向传感器(orientation)
       压力传感器(pressure)
       距离传感器(proximity)
       温度传感器(temperature)

当然有些手机是不全部包含这些传感器的,我们在开发是可以先在手机上进行测试,一般用的最多的就是重力传感器和方向传感器,现在我就分析一下重力传感器的简单应用:

 

 

  • 重力传感器:在Android手机中,将屏幕左下角的坐标设为原点,横向为X轴,纵向为Y轴,屏幕正上方为Z轴的正方向,在重力传感器中将得到3个参数X,Y,Z,其范围都在--10到+10之间,以X轴为例,当X轴正方向指向天时,X=10,指向地时X=--10,水平时X=0;Y轴和Z轴也是如此,所以当手机平放时,X=Y=0;Z=10

 

 

1.首先获得手机传感器管理对象

  sensorMgr=(SensorManager)getSystemService(SENSOR_SERVICE);

 

2.取得要用的管理器的类型

 sensor=sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

这里 TYPE_ACCELEROMETER是加速度传感器

3.实例化一个监听器

4.在要用传感器的时候注册监听器,不用的时候取消注册

 

代码实现如下:

 

package second.gravity;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;

public class SecondSensor extends Activity {
	//传感器管理器对象
	private SensorManager sensorMgr;
	//传感器对象,此处用的是加速度传感器
	private Sensor sensor;
	//得到的各方向的加速度
	private float x,y,z;
	
	//创建Activiy
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //得到当前手机的管理器对象
        sensorMgr=(SensorManager)getSystemService(SENSOR_SERVICE);
        //得到加速度传感器对象
        sensor=sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);  
    }
    
    //实例化传感监听器,其中包含2个必须实现的方法
    SensorEventListener lsn=new SensorEventListener(){
		public void onAccuracyChanged(Sensor sensor, int accuracy) {	
		}

		public void onSensorChanged(SensorEvent event) {
			//得到加速度
			x=event.values[SensorManager.DATA_X];
			y = event.values[SensorManager.DATA_Y];  
	        z = event.values[SensorManager.DATA_Z]; 	
		}	
    };
    
    //添加一个触屏监听器,触屏式显示X,Y,Z的值
    public boolean onTouchEvent(MotionEvent event){
    	if(event.getAction()==MotionEvent.ACTION_DOWN){
    		//注册监听器,参数分别是监听器对象,传感器对象,检测的精准度
    		//精准度越精确,检测的频率越高,细微的行,x,y,z检测的更精确
    		sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME); 	
    		String str = "x=" + x + "; y=" + y + "; z=" + z; 
            Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();  
    	}
    	return super.onTouchEvent(event); 	
    }
      
    //当Activiy激活时注册监听器
    public void onResume(){  
    	sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);     
        super.onResume();  
    }  
      
    //当Activiy暂停时取消注册
    public void onPause(){  
    	sensorMgr.unregisterListener(lsn);         
        super.onPause();  
    } 
     
    
}
 

 

敬请大家期待我的重力感应小游戏,一周后完成。

分享到:
评论

相关推荐

    Android 重力感应游戏-疯狂的小球源码程序

    Android 重力感应游戏-疯狂的小球源码程序,基于Android 平台的重力感应游戏-疯狂的小球。

    android 利用重力感应监听

    在Android开发中,利用重力感应来实现特定功能是一种常见的技术。通过集成传感器API,开发者可以获取设备的重力变化数据,从而实现如来电时翻转手机静音这样的实用功能。下面将详细介绍如何在Android中利用重力感应...

    android重力感应源代码

    本文将深入探讨Android重力感应源代码的相关知识点,帮助开发者理解和实现这一功能。 首先,我们要知道Android中的Sensor类是处理传感器事件的核心接口。在`android.hardware.Sensor`包下,Sensor类提供了获取...

    android重力感应实例代码

    这个“android重力感应实例代码”提供了一个具体的示例,帮助开发者理解如何在Android应用中集成并使用重力感应数据。下面将详细介绍相关知识点。 1. **Android传感器系统服务** Android系统提供了Sensor Service...

    Android重力感应示例(源码)

    在Android开发中,重力感应是一项重要的功能,它允许应用程序响应设备的移动和方向变化。...通过理解并实践"Android重力感应示例(源码)",你将能够自如地利用这一功能,提升应用的交互性和实用性。

    Android重力感应实例

    这个"Android重力感应实例"可能是为了展示如何利用Android SDK中的传感器API来开发一个控制小车的应用。下面将详细阐述Android重力感应的工作原理、相关API以及如何在实际开发中应用。 一、Android重力感应工作原理...

    Android 重力感应游戏-疯狂的小球

    总之,"疯狂的小球"作为一款基于Android重力感应技术的游戏,融合了硬件传感器、物理引擎、用户交互和关卡设计等多个方面的技术,为玩家带来独特且刺激的体验。通过不断优化和创新,开发者可以创造出更加引人入胜的...

    Android 重力感应的测试程序源码-IT计算机-毕业设计.zip

    本项目“Android重力感应的测试程序源码”提供了一个实用的示例,帮助开发者理解如何在Android应用中集成并利用重力感应器的数据。下面将详细解析这个项目的知识点。 1. **Android传感器服务**: - Android系统...

    Android重力感应Demo

    在本"Android重力感应Demo"中,我们将深入探讨如何利用Android SDK中的Sensor类和SensorEventListener接口来实现对重力感应数据的监听和处理。 首先,我们需要了解Android的Sensor框架。Android系统提供了多种...

    android_重力感应demo

    在Android平台上,重力感应是通过传感器服务(Sensor Service)来实现的,它允许开发者获取设备的物理运动数据,如重力、加速度等。这个"android_重力感应demo"是一个示例项目,旨在帮助初学者理解如何从设备获取并...

    android关闭重力感应

    android系统里面常常没用做关闭重力感应的软件。。。。。o(∩_∩)o 哈哈

    Android应用源码之Android重力感应跑步测速应用_源码.zip

    该Android应用源码展示了如何利用Android设备的重力感应器来实现跑步测速功能。在Android平台上,开发者可以通过Android传感器API来访问设备的各种传感器数据,包括重力感应器。这个应用的核心技术点主要包括以下几...

    Android手机平台重力感应Demo

    在Android平台上,重力感应功能是通过传感器系统服务来实现的,这允许应用程序接收设备的动态运动数据,如重力、加速度等。这个"Android手机平台重力感应Demo"是一个示例项目,用于演示如何在Android应用中利用重力...

    Android重力感应跑步测速应用.rar

    总的来说,开发一个Android重力感应跑步测速应用需要理解传感器的工作原理,掌握数据处理和计算技巧,以及具备良好的UI设计和性能优化能力。这个过程既考验技术功底,也体现了对用户体验的细腻把握。

    android重力感应禁止调用oncreat方法

    ### Android重力感应与禁止调用onCreate方法详解 #### 一、问题背景与解决方案概述 在Android开发过程中,有时我们需要让应用支持横竖屏自动切换,但又不希望每次屏幕方向改变时都重新调用`onCreate()`方法。这是...

    android重力感应

    在Android平台上,重力感应是通过传感器服务来实现的,它可以帮助开发者获取设备在空间中的运动状态,例如手机的翻转、倾斜等动作。本文将深入探讨如何在Android中进行重力感应的开发,以及相关的知识和技术。 首先...

    android 重力感应摇骰子游戏

    通过以上这些知识点,我们可以构建出一个基于Android重力感应的摇骰子游戏,让玩家享受科技带来的乐趣。在实际开发中,还需要结合具体需求进行功能扩展和细节调整,以打造一个既娱乐又具有技术含量的应用。

    安卓Android源码——重力感应的测试程序源码.zip

    总的来说,这个压缩包提供了学习和实践Android重力感应器API的机会,对于想深入了解Android硬件交互或者游戏开发的开发者来说,是非常有价值的参考资料。通过研究源码,开发者可以掌握如何动态响应设备的运动,提升...

Global site tag (gtag.js) - Google Analytics