android实现摇一摇事件监听
来源:互联网 发布:thinkphp5源码下载 编辑:程序博客网 时间:2024/05/16 03:17
首先一个工具类:
package www.basketi.cn.basketball.androidtojs;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;/** * 摇一摇工具类 * 使用说明: * 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;}然后在类中注册和销毁
@Overrideprotected void onResume() { super.onResume(); mShakeUtils.onResume();}@Overrideprotected void onPause() { super.onPause(); mShakeUtils.onPause( );}然后在主类中创建对象
mShakeUtils = new ShakeUtils( this );mShakeUtils.setOnShakeListener(new ShakeUtils.OnShakeListener() { @Override public void onShake() { Toast.makeText(MainActivity.this,"摇一摇",Toast.LENGTH_SHORT).show(); }});
0 0
- android实现摇一摇事件监听
- android实现双击事件监听
- Android 实现事件监听的两个方法
- Android Dialog创建及其监听事件实现
- Android中实现监听ScrollView滑动事件
- android三种方法实现监听事件
- android设备外接键盘实现监听事件
- android 三种方法实现监听事件
- Android实现监听EditText编辑完成事件
- 自己实现事件监听
- 实现事件监听
- php实现监听事件
- PHP实现监听事件
- 【android】:android实现监听多个按钮事件
- Android 事件监听
- android 双击事件监听
- Android: 监听解锁事件
- Android 事件监听
- 使用 SQL Server 身份验证进行连接数据库
- ubuntu16.04安装libiconv
- 第三章 决策树 3.1决策树构造
- Valid Parentheses
- Webservice的cxf开发_入门(jdk1.7)
- android实现摇一摇事件监听
- java学校,班级,学生类的三级关系
- 粒子群算法
- 简单登陆升级版(加入验证码、在session时间内登陆logon.do直接进入成功登陆页面)
- December 10th 模拟赛C T3 X-因子链 Solution
- Codeforces -【246C Beauty Pageant】
- Docker中安装Gitlab和gitlab-ci-multi-runner来搭建CI服务器
- 常用的C/C++开源库整理
- bootstrap轮播HTML代码