利用传感器实现微信的摇一摇功能
现在的不少应用都用到了摇动手机改变内容的功能,比如微信中的“摇一摇”功能。前两天要实现这个功能,稍微看了一下关于传感器Sensor的内容。
传感器有几种类型:
方向传感器: Sensor.TYPE_ORIENTATION
加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER
光线传感器: Sensor.TYPE_LIGHT
磁场传感器: Sensor.TYPE_MAGNETIC_FIELD
距离(临近性)传感器: Sensor.TYPE_PROXIMITY
温度传感器: Sensor.TYPE_TEMPERATURE
在摇动手机的功能中,我们只用加速度传感器就行了
加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是
values[0]: x-axis 方向加速度
values[1]: y-axis 方向加速度
values[2]: z-axis 方向加速度
其中x,y,z方向的定义是以水平放置在的手机的右下脚为参照系坐标原点
x 方向就是手机的水平方向,右为正
y 方向就是手机的水平垂直方向,前为正
y 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负
所以说,你的手机放置的空间位置不同,它三个方向的加速度也不同。在这里,三个方向的加速度,与我们传统意义上的加速度(9.8m/s2)有所区别,需细细品味。
以下是摇动手机后清除TextView的文字的代码:
package gy.lovers; import java.util.ArrayList; import java.util.List; import java.util.Random; import android.app.Activity; import android.app.Service; import android.content.res.Resources; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.os.Vibrator; import android.view.View; import android.widget.Button; //需要实现SensorEventListener接口public class LoversChoise extends Activity implements SensorEventListener{ Button clear; //定义sensor管理器 private SensorManager mSensorManager;//震动 private Vibrator vibrator; public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.loverschoise); //获取传感器管理服务 mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//震动 vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); clear = (Button) findViewById(R.id.clear); clear.setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub //点击button后,给button按钮设置了text clear.setText("现在给button的text赋值喽~"); }); @Override protected void onResume(){super.onResume(); //加速度传感器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), //还有SENSOR_DELAY_UI、SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME等,//根据不同应用,需要的反应速率不同,具体根据实际情况设定 SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onStop(){mSensorManager.unregisterListener(this);super.onStop(); } @Override protected void onPause(){mSensorManager.unregisterListener(this);super.onPause(); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub//当传感器精度改变时回调该方法,Do nothing.} @Override public void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stub int sensorType = event.sensor.getType(); //values[0]:X轴,values[1]:Y轴,values[2]:Z轴 float[] values = event.values; if(sensorType == Sensor.TYPE_ACCELEROMETER){ if((Math.abs(values[0])>14||Math.abs(values[1])>14||Math.abs(values[2])>14)){ //摇动手机后,设置button上显示的字为空 clear.setText(null); //摇动手机后,再伴随震动提示~~ vibrator.vibrate(500); }} } }
转至:http://www.cnblogs.com/wufawei/archive/2012/03/04/2379320.html
利用传感器实现微信的摇一摇功能相关推荐
- python头像右上角加红色数字_利用python实现微信头像加红色数字功能
通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...
- python程序设置头像_利用python实现微信头像加红色数字功能
通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...
- android开发利用传感器实现微信的摇一摇功能
现在的不少应用都用到了摇动手机改变内容的功能,比如微信中的"摇一摇"功能.前两天要实现这个功能,稍微看了一下关于传感器Sensor的内容. 传感器有几种类型: 方向传 ...
- Android移动开发-利用加速度传感器开发仿微信摇一摇功能的实现
加速度传感器是最常见的传感器,大部分Android手机都内置了加速度传感器,加速度传感器运用最广泛的功能就是微信的摇一摇功能,用户通过摇晃手机寻找周围的人,其它类似的应用还摇骰子.玩游戏等. 下面以摇 ...
- 利用html5实现类似微信的手机摇一摇功能
利用html5实现类似微信的手机摇一摇功能,并播放音乐. 1. deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度.方位.朝向等. 2 ...
- 玩转Android之加速度传感器的使用,模仿微信摇一摇
Android系统带的传感器有很多种,最常见的莫过于微信的摇一摇了,那么今天我们就来看看Anroid中传感器的使用,做一个类似于微信摇一摇的效果. OK ,废话不多说,我们就先来看看效果图吧: 当我摇 ...
- 传感器的使用,高仿微信摇一摇,动画加声音
很多时候我们的应用需要使用传感器,使手机应用更加方便和可玩性更高, Google为我们提供了十一种传感器 #define SENSOR_TYPE_ACCELEROMETER 1 //加速度#defin ...
- 利用html5实现类似微信的手机摇一摇功能-计算摇动次数
1. deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度.方位.朝向等. 2. deviceMotion:封装了运动传感器数据的事件 ...
- js微信摇一摇功能以及api
一.摇一摇功能 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...
最新文章
- App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW int
- Struts2基础(1)_MVC
- Present ViewController详解
- 初学者学python好还是c-学Python还是学C?
- AFIO时钟何时开启
- nagios监控mysql(check_mysql)及内存使用率(check_mem)
- jQuery UI全教程之一(dialog的使用教程)
- 给1-3年的前端 6 点诚心建议
- 3 RabbitMQ高级特性 3
- VBF BETA 1.5 发布了
- 7.程序员的自我修养---动态链接
- cmd链接php mysql数据库_php连接mysql数据库_cmd连接mysql数据库 - MySQL最新手册教程 - php中文网手册...
- 区分惯性环节与延迟环节
- 最新计算机专业毕业设计论文选题源码演示录像下载(开题报告任务书PPT毕业答辩模板 jsp70786体育馆售票门票系统 双数据库 mysql版
- sis新地址_坚若磐石不掉速,老平台升级新选择,入手昱联Asint 500G SSD
- [教程]教你如何制作彩色的3D打印Groot
- android中出现javax.net.ssl.SSLPeerUnverifiedException的解决方案
- 【R语言】RMarkdown使用
- mysql函数 游标_存储过程/游标/mysql 函数
- python爬取快手粉丝榜_[Python] 【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...