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开发中,利用重力感应来实现特定功能是一种常见的技术。通过集成传感器API,开发者可以获取设备的重力变化数据,从而实现如来电时翻转手机静音这样的实用功能。下面将详细介绍如何在Android中利用重力感应...
本文将深入探讨Android重力感应源代码的相关知识点,帮助开发者理解和实现这一功能。 首先,我们要知道Android中的Sensor类是处理传感器事件的核心接口。在`android.hardware.Sensor`包下,Sensor类提供了获取...
这个“android重力感应实例代码”提供了一个具体的示例,帮助开发者理解如何在Android应用中集成并使用重力感应数据。下面将详细介绍相关知识点。 1. **Android传感器系统服务** Android系统提供了Sensor Service...
在Android开发中,重力感应是一项重要的功能,它允许应用程序响应设备的移动和方向变化。...通过理解并实践"Android重力感应示例(源码)",你将能够自如地利用这一功能,提升应用的交互性和实用性。
这个"Android重力感应实例"可能是为了展示如何利用Android SDK中的传感器API来开发一个控制小车的应用。下面将详细阐述Android重力感应的工作原理、相关API以及如何在实际开发中应用。 一、Android重力感应工作原理...
总之,"疯狂的小球"作为一款基于Android重力感应技术的游戏,融合了硬件传感器、物理引擎、用户交互和关卡设计等多个方面的技术,为玩家带来独特且刺激的体验。通过不断优化和创新,开发者可以创造出更加引人入胜的...
本项目“Android重力感应的测试程序源码”提供了一个实用的示例,帮助开发者理解如何在Android应用中集成并利用重力感应器的数据。下面将详细解析这个项目的知识点。 1. **Android传感器服务**: - Android系统...
在本"Android重力感应Demo"中,我们将深入探讨如何利用Android SDK中的Sensor类和SensorEventListener接口来实现对重力感应数据的监听和处理。 首先,我们需要了解Android的Sensor框架。Android系统提供了多种...
在Android平台上,重力感应是通过传感器服务(Sensor Service)来实现的,它允许开发者获取设备的物理运动数据,如重力、加速度等。这个"android_重力感应demo"是一个示例项目,旨在帮助初学者理解如何从设备获取并...
android系统里面常常没用做关闭重力感应的软件。。。。。o(∩_∩)o 哈哈
该Android应用源码展示了如何利用Android设备的重力感应器来实现跑步测速功能。在Android平台上,开发者可以通过Android传感器API来访问设备的各种传感器数据,包括重力感应器。这个应用的核心技术点主要包括以下几...
在Android平台上,重力感应功能是通过传感器系统服务来实现的,这允许应用程序接收设备的动态运动数据,如重力、加速度等。这个"Android手机平台重力感应Demo"是一个示例项目,用于演示如何在Android应用中利用重力...
总的来说,开发一个Android重力感应跑步测速应用需要理解传感器的工作原理,掌握数据处理和计算技巧,以及具备良好的UI设计和性能优化能力。这个过程既考验技术功底,也体现了对用户体验的细腻把握。
### Android重力感应与禁止调用onCreate方法详解 #### 一、问题背景与解决方案概述 在Android开发过程中,有时我们需要让应用支持横竖屏自动切换,但又不希望每次屏幕方向改变时都重新调用`onCreate()`方法。这是...
在Android平台上,重力感应是通过传感器服务来实现的,它可以帮助开发者获取设备在空间中的运动状态,例如手机的翻转、倾斜等动作。本文将深入探讨如何在Android中进行重力感应的开发,以及相关的知识和技术。 首先...
通过以上这些知识点,我们可以构建出一个基于Android重力感应的摇骰子游戏,让玩家享受科技带来的乐趣。在实际开发中,还需要结合具体需求进行功能扩展和细节调整,以打造一个既娱乐又具有技术含量的应用。
总的来说,这个压缩包提供了学习和实践Android重力感应器API的机会,对于想深入了解Android硬件交互或者游戏开发的开发者来说,是非常有价值的参考资料。通过研究源码,开发者可以掌握如何动态响应设备的运动,提升...