Android开发之重力传感器

重力传感器与方向传感器的开发步骤相似,只要理清了期中的x,y,z的值以后就能够根据他们的变化来进行编程了,首先来看一副图编程

5a48dd2dnaf40a3a018ef&690.jpg

 

假设当地的重力加速度值为gide

当手机正面朝上的时候,z的值为q,反面朝上的时候,z的值为-g学习

当手机右侧面朝上的时候,x的值为g,右侧面朝上的时候,x的值为-gspa

当手机上侧面朝上的时候,y的值为g,右侧面朝上的时候,y的值为-g资源

    了解了重力传感器中X,Y,Z的含义以后下面咱们就开始学习如何使用开发

首先咱们建立一个传感器管理器和一个传感器监听器,管理器用来管理传感器以及建立各类各样的传感器,监听器用来监视传感器的变化而且进行相应的操做get

private SensorManager sensorManager;io

private MySensorEventListener mySensorEventListener;event

mySensorEventListener= new MySensorEventListener();//这个监听器固然是咱们本身定义的,在重力感     应器感应到手机位置有变化的时候,咱们能够采起相应的操做,这里牢牢是将x,y,z的值打印出来class

private final class MySensorEventListener implements  SensorEventListener{

 

@Override

//能够获得传感器实时测量出来的变化值

public void onSensorChanged(SensorEvent event) {

//重力传感器

if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){

float x = event.values[SensorManager.DATA_X];

float y = event.values[SensorManager.DATA_Y];

float z = event.values[SensorManager.DATA_Z];

//tv_accelerometer是界面上的一个TextView标签,再也不赘述

tv_orientation.setText("Orientation:"+x+","+y+","+z);

}

}

 

咱们在onResume方法中建立重力传感器,并向系统注册监听器

protected void onResume() {

    Sensor sensor_accelerometer=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

    sensorManager.registerListener(mySensorEventListener,sensor_accelerometer,   SensorManager.SENSOR_DELAY_UI);

 

super.onResume();

}

最后咱们在onPause()中注销全部传感器的监听,释放重力感应器资源!

protected void onPause() {

/注销全部传感器的监听

sensorManager.unregisterListener(mySensorEventListener);

super.onPause();

}

到此,有关重力传感器的介绍完毕!

相关文章
相关标签/搜索