您的位置:首页 > 移动开发 > Android开发

android_重力传感器(个人笔记)

2017-06-02 12:11 274 查看
在做设计中用到重力传感器,做个笔记。

package com.example.dahai.my1;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private SensorManager MyManage;    //新建sensor的管理器

//新建三轴文本框
private TextView view_x;
private TextView view_y;
private TextView view_z;
//新建三轴数据
private float x;
private float y;
private float z;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyManage = (SensorManager)getSystemService(SENSOR_SERVICE);    //获得系统传感器服务管理权
findviews();
}
//绑定控件
private void findviews(){

view_x = (TextView)findViewById(R.id.textView2);
view_y = (TextView)findViewById(R.id.textView3);
view_z = (TextView)findViewById(R.id.textView4);
}
//初始化事件
@Override
protected void onResume() {
super.onResume();

//注册重力感应服务
boolean enable = MyManage.registerListener(MySensor_Gravity_listener, MyManage.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
if (!enable) {
MyManage.unregisterListener(MySensor_Gravity_listener);
}
}
//activity暂停事件
@Override
protected void onPause() {
super.onPause();
MyManage.unregisterListener(MySensor_Gravity_listener);
}
//sensor监听事件
SensorEventListener MySensor_Gravity_listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor == null){
return;
}
//新建加速度计变化事件
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
//获取x,y,z三个方向的加速度值
x = event.values[SensorManager.DATA_X];
y = event.values[SensorManager.DATA_Y];
z = event.values[SensorManager.DATA_Z];
//显示三个轴的信息
view_x.setText(String.valueOf(x));
view_y.setText(String.valueOf(y));
view_z.setText(String.valueOf(z));
}
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {

}
};
@Override
protected void onDestroy() {
super.onDestroy();
//解注册
MyManage.unregisterListener(MySensor_Gravity_listener);
}
}
个人效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: