摇一摇工具类
来源:互联网 发布:淘宝网男冬装 编辑:程序博客网 时间:2024/05/18 00:05
摇一摇工具类
一、原理介绍
Android手机中摇一摇的功能已经很常见了,最近接触到了这个功能,原理很简单:使用加速度传感器,在晃动手机时,监听加速度在各个方向的变化,当加速度值超过设定的灵敏度时,则触发摇一摇功能。
二、功能实现
摇一摇功能:我将摇一摇功能封装成了一个类ShakeUtils,在使用时按照注释中的说明使用即可。
/** * 摇一摇工具类 * 使用说明: * private ShakeUtils mShakeUtils = null; * 1、在需要使用摇一摇功能的Activity实例化该工具类并设置摇一摇监听: * mShakeUtils = new ShakeUtils( this ); * mShakeUtils.setOnShakeListener(new OnShakeListener{ * public void onShake(){ * // 此处为摇一摇触发后的操作 * } * }); * * 2、分别在Activity的onResume和onPause方法中调用该工具类的onResume和onPause方法: * mShakeUtils.onResume(); * mShakeUtils.onPause(); * */public class ShakeUtils implements SensorEventListener { public ShakeUtils( Context context ){ mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); } public void setOnShakeListener( OnShakeListener onShakeListener ){ mOnShakeListener = onShakeListener; } public void onResume(){ mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); } public void onPause(){ mSensorManager.unregisterListener(this); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } @Override public void onSensorChanged(SensorEvent event) { 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]) > SENSOR_VALUE || Math.abs(values[1]) > SENSOR_VALUE || Math.abs(values[2]) > SENSOR_VALUE)){ System.out.println("sensor value == " + " " + values[ 0 ] + " " + values[ 1 ] + " " + values[ 2 ] ); if( null != mOnShakeListener ){ mOnShakeListener.onShake( ); } } } } public interface OnShakeListener{ public void onShake(); } private SensorManager mSensorManager = null; private OnShakeListener mOnShakeListener = null; private static final int SENSOR_VALUE = 14;}
0 0
- 摇一摇工具类
- 工具类
- 工具类!!!!
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- ViewConfiguration常量字段介绍
- 向量,标量对向量求导数
- show databases
- 浅谈算法和数据结构: 三 合并排序
- 用grunt搭建自动化的web前端开发环境-完整教程
- 摇一摇工具类
- CSDN博客里markdown怎么加入代码片?
- 现学现用 - C++监视热键源代码
- 服务器连接错误Host 'XXX' is not allowed to connect to this MySQL server
- 常见显示接口对比(LVDS eDP MIPI V-by-One HS)
- 剑指offer(24)-字符串的排列
- 内联函数和宏函数
- /sys/class/gpio 文件接口操作IO端口(s3c2440)
- js 时间格式化