package com.example.sensor01;

import java.util.List;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView; public class MainActivity extends Activity implements SensorEventListener{ private static final float NS2S = 1.0f / 1000000000.0f;
private float timestamp;
private SensorManager mSensorManager;
private TextView textview;
private float angle2 = 0,angle0 = 0,angle1 = 0; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); textview = (TextView) findViewById(R.id.content); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub
} @Override
public void onSensorChanged(SensorEvent event) { float[] values = new float[3]; if(0 != timestamp){ final float dT = (event.timestamp - timestamp) * NS2S; if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE){
//三个方向的角速度
values = event.values;
} //三个方向转过的弧度
angle0 += values[0] * dT;
angle1 += values[1] * dT;
angle2 += values[2] * dT; //三个方向将弧度转换为角度,即 角度=弧度除以π再乘以180 弧度=角度乘以π后再除以180
float anglex = (float) Math.toDegrees(angle0);//前后垂直翻转的角度(相对于初始位置,即第一次取值)
float angley = (float) Math.toDegrees(angle1);//左右翻转的角度(相对于初始位置,即第一次取值)
float anglez = (float) Math.toDegrees(angle2);//左右摇摆的角度(相对于初始位置,即第一次取值) textview.setText(String.valueOf(anglex) + " "
+ String.valueOf(angley) + " " + String.valueOf(anglez));
} timestamp = event.timestamp;
}
}

最新文章

  1. jQuery插件开发--(转)
  2. Web 在线文件管理器学习笔记与总结(19)上传文件
  3. Spring中@Resource与@Autoware
  4. bjfu1299 stl使用
  5. linux下安装
  6. ASP.NET多线程下使用HttpContext.Current为null解决方案
  7. Windows平台下主要的内存管理途径
  8. hdu4507
  9. js笔记-DOM基础
  10. rsyslog 走tcp通讯配置
  11. css清除浮动float的三种方法总结
  12. NioSocket相关知识
  13. 人生苦短 我用Python 第二周的第一天 (数据类型)
  14. #多个关联的python程序在linux后台运行
  15. 查看linux系统是多少位
  16. Linux-误删apt-get以及把aptitude换回
  17. asp.net core 下载文件,上传excel文件
  18. Python 进程管理工具 Supervisor 使用教程
  19. 如何在excel单元格中插入图片批注
  20. CentOS7利用systemctl添加自定义系统服务

热门文章

  1. PHP的继承方法如何获取子类名
  2. [10]APUE:信号
  3. oracle 创建用户和imp指定表空间
  4. 健忘vs总结
  5. Fire
  6. Java 第22章 mySQy
  7. out与ref的区别
  8. python基础整理笔记(八)
  9. 【转】Linux 文件夹文件创建与删除
  10. GetRelevantAnimTimeRemainingFraction节点Bug