- 浏览: 272205 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
flyingsnowff:
支付宝官方在线文档中心:https://doc.open.al ...
如何集成支付宝官方文档 -
timer_yin:
果然是这样
[转帖] 安装Eclipse插件长时间卡在 calculating requirements and dependencies -
dai_lm:
<div class="quote_title ...
通过Wifi实现设备间的通信 -
lyx0224:
强~~~~~
通过Wifi实现设备间的通信 -
Goro:
帅!
自己封装的支持自动对焦的CameraView
抄了别人的一段代码,发现使用了SensorListener,在1.5上会有警告,于是改成SensorEventListener了。
摇6下就会触发onShake()事件了。
使用的时候
需要注意的是,在Activity的onPause和onResume函数里需要调用ShakeListener实例的pause和resume过程,注册和注销事件监听。
摇6下就会触发onShake()事件了。
package com.test.android.shake; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; public class ShakeListener implements SensorEventListener { private static final int FORCE_THRESHOLD = 350; private static final int TIME_THRESHOLD = 100; private static final int SHAKE_TIMEOUT = 500; private static final int SHAKE_DURATION = 1000; private static final int SHAKE_COUNT = 6; private SensorManager mSensorMgr; private float mLastX = -1.0f, mLastY = -1.0f, mLastZ = -1.0f; private long mLastTime; private OnShakeListener mShakeListener; private Context mContext; private int mShakeCount = 0; private long mLastShake; private long mLastForce; public interface OnShakeListener { public void onShake(); // public void onShakeHorizontal(); // public void onShakeVertical(); } public ShakeListener(Context context) { mContext = context; resume(); } public void setOnShakeListener(OnShakeListener listener) { mShakeListener = listener; } public void resume() { mSensorMgr = (SensorManager) mContext .getSystemService(Context.SENSOR_SERVICE); if (mSensorMgr == null) { throw new UnsupportedOperationException("Sensors not supported"); } boolean supported = mSensorMgr.registerListener(this, mSensorMgr .getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_UI); if (!supported) { mSensorMgr.unregisterListener(this); throw new UnsupportedOperationException( "Accelerometer not supported"); } } public void pause() { if (mSensorMgr != null) { mSensorMgr.unregisterListener(this); mSensorMgr = null; } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER) { return; } long now = System.currentTimeMillis(); if ((now - mLastForce) > SHAKE_TIMEOUT) { mShakeCount = 0; } if ((now - mLastTime) > TIME_THRESHOLD) { long diff = now - mLastTime; float speed = Math.abs(event.values[SensorManager.DATA_X] + event.values[SensorManager.DATA_Y] + event.values[SensorManager.DATA_Z] - mLastX - mLastY - mLastZ) / diff * 10000; if (speed > FORCE_THRESHOLD) { if ((++mShakeCount >= SHAKE_COUNT) && (now - mLastShake > SHAKE_DURATION)) { mLastShake = now; mShakeCount = 0; if (mShakeListener != null) { mShakeListener.onShake(); } } mLastForce = now; } mLastTime = now; mLastX = event.values[SensorManager.DATA_X]; mLastY = event.values[SensorManager.DATA_Y]; mLastZ = event.values[SensorManager.DATA_Z]; } } }
使用的时候
ShakeListener mShaker = new ShakeListener(this); mShaker.setOnShakeListener(new ShakeListener.OnShakeListener() { public void onShake() { // action while shaking } });
需要注意的是,在Activity的onPause和onResume函数里需要调用ShakeListener实例的pause和resume过程,注册和注销事件监听。
发表评论
-
获取Android Device的信息
2013-12-26 15:47 1447String phoneInfo = "PROD ... -
看雪学院-Android安全
2013-11-25 09:40 950http://bbs.pediy.com/forumdispl ... -
Toast原来也可以多样化
2013-09-18 13:48 1171Style 1: 默认 Toast def = Toast ... -
Google Map API V2
2013-05-13 13:37 2160以后如果要开发包含google map的程序就更麻烦咯 htt ... -
用OpenGL实现无限循环的coverflow
2013-04-26 14:16 4792网上找了很久,都是用Gallery实现的,效果不是很满意,结果 ... -
如何集成支付宝官方文档
2013-02-08 11:24 4485官方文档下载地址 https://b.alipay.com/o ... -
[转帖]裁剪图片
2013-01-30 17:22 939原帖:http://www.linuxidc.com/Linu ... -
MonkeyRunner的使用
2013-01-29 13:06 9662要使用MonkeyRunner,就要 ... -
重复执行某段代码
2012-12-29 14:36 1568用handler就可以了 private Handler ... -
选择音频的输出方式
2012-12-12 15:00 1957可以选择用耳机还是扬声器播放(蓝牙的就留到下次吧),要求SDK ... -
使FrameLayout的Gravity等于Center
2012-12-06 16:42 1714由于无法设置FrameLayout的Gravity,所以只能通 ... -
在Android上模拟MetroUI
2012-10-31 15:49 2594在Android上模拟WP7的MetroUI MetroIt ... -
Uri.Builder与String互转
2012-08-14 15:56 2301Uri.Builder -> String Uri. ... -
判断屏幕尺寸
2012-07-17 10:21 1855// support from API 4 final ... -
自己封装的支持自动对焦的CameraView
2012-07-12 13:52 3605import java.io.BufferedOutp ... -
ADT 离线包下载地址
2012-07-06 14:32 1996更新ADT真是件苦恼的事啊 20.0.0的下载地址 http ... -
通过Wifi实现设备间的通信
2012-06-05 15:19 2010服务器端,建立监听(方法更新,可以同时连接多个Client) ... -
IP地址的获取及解析
2012-06-05 13:31 1251获取IP地址 WifiManager wifiManage ... -
判断网络是否有效
2012-05-28 17:32 950protected boolean isInternetA ... -
悬浮窗
2012-05-28 17:21 3046类似于360监视网络速度的那个悬浮窗 public cl ...
相关推荐
NULL 博文链接:https://a2012s.iteye.com/blog/1447688
android 重力感应监听,代码示例,可以参考。
这个类(我的是Activity中)继承SensorEventListener接口 先获取传感器对象,再获取传感器对象的类型 //获取传感器管理对象 SensorManager mSensorManager = (SensorManager)getSystemService(Context.SENSOR_...
本例是结合摇一摇的场景介绍android中SensorManager和SensorEventListener类的使用
step 1,新建实现SensorEventListener接口的类并实现onSensorChanged(SensorEvent event)方法 代码如下:public class MainActivity extends Activity implements SensorEventListener step 2,得到距离感应器的实例 ...
android传感器定向库使用所有可用的设备传感器,帮助您获得更精确的定向矢量值。
DBAdapter.java ——数据库工具类 Food.java ——Food类及其属性(id和content) MainActivity.java ——数据库增删的activity ...ShakeListener.java ——实现SensorEventListener接口的摇一摇工具类
搖一搖骰子功能,記得開震動和反饋噢 基於SensorEventListener,surfaceview使用
在Android应用程序中使用传感器要依赖于android.hardware.SensorEventListener接口。通过该接口可以监听传感器的各种事件。
TiltSpot(入门代码) TiltSpot演示了加速度计和地磁场传感器的使用,以确定设备的方向。... 从SensorEventListener接口使用onSensorChanged()方法来处理对传感器数据的更改。入门下载并在Android Studio中打开此示
公共类测试实现 SensorEventListener { SensorDataComposer sdc; public test() { sdc = new SensorDataComposer(this);}// input sensor datapublic void addData(String data) { sdc.addData(data);}public void ...
1.activity如果要使用传感器,就必须实现SensorEventListener接口 2.得到传感器管理对象(sensormanager) 3.使用sensormanager.registerlistener 方法注册指定的传感器 4.在sensoreventlistener 接口中的...
调用anroid的光线传感器使用。 实现效果图: MainActivity.Java package hk.ust.cse.comp107x.ligthsensor; import android.content.Context; import android.hardware.Sensor; import android.hardware....
监听摇一摇SensorManager @Override protected void onStop() { super.onStop(); if (sensorManager != null) {// 取消监听器 sensorManager.unregisterListener(sensorEventListener); } }
导语 本章根据百度地图API,实现仿钉钉打卡功能。用到了基础地图、覆盖物、定位图层、陀螺仪方法、悬浮信息弹框。 百度地图API地址 :Android ...类先实现方向传感器 implements SensorEventListener @Override pub
距离感应器:继承SensorEventListener这个监听,重写onSensorChanged方法 * 2. 检测耳机插入和拔出:HeadsetPlugReceiver监听广播AudioManager.ACTION_AUDIO_BECOMING_NOISY和"android.intent.action.HEADSET_PLUG...
针对一个老年社交娱乐...利用 Eclipse 集成开发环境,采用xml布局、ViewPager、PagerAdaper、Animation动画、ScrollView、读取xml文件、jsoup解析web网页内容、Android Location、重力感应监听SensoreventListener等
import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view....