Android学习之重力传感器使用
一、食用解读
注意了Values[0]
传回来的数是-10到10
,可以根据自己的实际需求进行缩放!
二、代码示例
例子,形如此类的。。
public class control extends MainActivity {//注意,这个类是继承MainActivity的!!!private static final String TAG = "control";ProgressBar progressBarSpeed;CheckBox checkBoxGravity;SensorManager sensorManager;Sensor sensor;float X_lateral;//X方向角度int Speed=0;//速度TextView textViewSpeed;//显示速度值@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.control);checkBoxGravity = (CheckBox) findViewById(R.id.checkBox31);progressBarSpeed = (ProgressBar) findViewById(R.id.progressBar31);textViewSpeed = (TextView) findViewById(R.id.textView33);checkBoxGravity.setOnCheckedChangeListener(checkBoxGravityCheckedChangeListener);}/**** 单选框事件*/private CompoundButton.OnCheckedChangeListener checkBoxGravityCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {// TODO Auto-generated method stubif (isChecked){sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//获取手机里面的传感器sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//选择获取重力传感器//监听函数 重力传感器对象 工作频率sensorManager.registerListener(mySensorEventListener, sensor, SensorManager.SENSOR_DELAY_NORMAL);// SENSOR_DELAY_GAME}else{sensorManager.unregisterListener(mySensorEventListener);//释放传感器}}};/*** 重力传感器监听事件*/SensorEventListener mySensorEventListener = new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stubif(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){X_lateral = event.values[0]+10; //把-10到10的数据变为0-20Speed = (int)((100-(X_lateral*10/2))*2);//变为0-200if (Speed>100) {Speed = 100;}textViewSpeed.setText(String.valueOf(Speed));runOnUiThread(new Runnable() {public void run(){progressBarSpeed.setProgress(Speed);}});// Log.e(TAG, event.values[0]+"" );}else {sensorManager.unregisterListener(mySensorEventListener);runOnUiThread(new Runnable() {public void run() {checkBoxGravity.setChecked(false);Toast.makeText(getApplicationContext(), "传感器不存在!!!", Toast.LENGTH_SHORT).show();}});}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}};protected void onPause() {super.onPause();sensorManager.unregisterListener(mySensorEventListener);}
}
参考:
https://www.cnblogs.com/yangfengwu/p/7633980.html
https://blog.csdn.net/wll995806658/article/details/53993356
Android学习之重力传感器使用相关推荐
- android重力传感器横竖反,Android编程基于重力传感器实现横竖屏放向切换功能
本文实例讲述了Android编程基于重力传感器实现横竖屏放向切换功能.分享给大家供大家参考,具体如下: 最近项目中用到了vr视频播放,因为自己实现,同时要实现横竖屏自动切换屏幕,核心代码如下: pac ...
- Android开发之重力传感器
重力传感器与方向传感器的开发步骤类似,只要理清了期中的x,y,z的值之后就可以根据他们的变化来进行编程了,推荐学习Android应用开发入门教程. 首先来看一副图 假设当地的重力加速度值为g 当手机正 ...
- Android 简单跟踪重力传感器方向旋转屏幕framework的代码
一.当旋转设备时候屏幕显示方向也改变,会打印下面的log,可以看到非常关键的一行log WindowOrientationListener: Proposed rotation changed! pr ...
- python如何控制传感器_[TPYBoard - Micropython之会python就能做硬件 5] 学习使用重力传感器及PWM...
一.实验器材 1.TPYboard V102板 一块 2.LED灯 一个 3.1602屏 一块 二.重力传感器 TPYboard与pyboard一样,本身带一个重力传感器.该传感器能够感知到加速力的变 ...
- Android学习之手机传感器的获取
首先声明:手机传感器的获取参考了网上一些其他人的CSDN博客,本文只是记录个人的学习状况 具体步骤: 框架: 1.创建Android工程(不使用默认的Activity,自己手动创建)名称:Sensor ...
- Android重力传感器研究
android重力传感器简介: android的重力传感器在各个方面有很广的应用,在android中,重力传感器使用惯性坐标系,所谓惯性坐标系是为了简化世界坐标而引入的一种新的坐标系.惯性坐标系的原点 ...
- Android 距离,方向,光线,磁场,重力传感器
Android 传感器开发 最近学习了一些跟传感器有关的东西,而且写了一个简单的APP和大家分享一下,界面如下: 1.接近传感器 接近传感器检测物体与手机的距离,单位是厘米.一些接近传感器只能返回远和 ...
- Android传感器应用——重力传感器实现滚动的弹球
一. 问题描述 Android中有多达11种传感器,不同的手机设备支持的传感器类型也不尽相同 1. 重力传感器 GV-sensor 2. 加速度传感器 G-sensor 3. 磁力传感器 M-se ...
- Pro Android学习笔记(一五五) 传感器(5) 磁场传感器和方位(上)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 文章转载 ...
最新文章
- Python Day26:多态、封装、内置函数:__str__、__del__、反射(反省)、动态导入模块...
- Ubuntu(Linux) 下 unzip 命令使用详解
- href可以请求后台么_href怎么进行传参
- ACM-ICPC 2018 徐州赛区网络预赛
- 1小时零基础赚一千,教你完成图书管理系统,不用打代码绝对学得会![完整全站教学 IVX 实战第四篇]
- 以太坊ipfs_动手:Infura和以太坊上的IPFS入门
- java 树状数据算法_使用递归算法结合数据库解析成Java树形结构的代码解析
- Java 邮箱判断 正则表达式
- 性能测试之JMeter函数助手详解
- 如何解决VS2017打开安装包运行报错问题
- C/C++基础学习代码(1)
- c语言科学计数法输出1_e10,北航13年机试--十进制数字的科学计数法表示的C语言实现...
- css面试题手写九宫格
- js获取当前时间(标准时间)
- 阿里云个人网站备案流程
- [唐诗]古风(其十九)-李白
- XMind 8 安装与激活
- Mybatis简介及其核心概念
- 进程控制块pcb详解
- 酒店企业私域流量运营方案来了
热门文章
- 如何把旧机械硬盘的资料快速拷贝到另一块机械硬盘?
- Linux-Vi编辑器
- 你想要的资源我都有(3)
- Lab: Offline password cracking:离线密码登录破解靶场复盘
- 我们要坚持不懈地追求自己的目标,即使遇到挫折也不要轻易放弃。
- 【小程序源码】二维码DIY背景美化生成器
- Android 入门第四讲03-列表RecyclerView(RecyclerView使用步骤(详),RecyclerView指定一行item的数目+指定一行item的数量,并且设置列表方向)
- 淘宝旅行单日出票量超2.6万张创同类网站纪录
- 《计算机体系结构:量化研究方法》5th 学习笔记
- 7-10 计算工资(c语言)