日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android手机摇一摇的实现SensorEventListener

發(fā)布時(shí)間:2024/1/17 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android手机摇一摇的实现SensorEventListener 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Android手機(jī)搖一搖的實(shí)現(xiàn)SensorEventListener 看實(shí)例 package com.example.shakeactivity;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 {/* Sensor 說(shuō)明 * Sensor.TYPE_ACCELEROMETER 加速度感應(yīng)檢測(cè) * Sensor.TYPE_MAGNETIC_FIELD 磁場(chǎng)感應(yīng)檢測(cè) * Sensor.TYPE_ORIENTATION 方位感應(yīng)檢測(cè) * Sensor.TYPE_GYROSCOPE 回轉(zhuǎn)儀感應(yīng)檢測(cè) * Sensor.TYPE_LIGHT 亮度感應(yīng)檢測(cè) * Sensor.TYPE_PRESSURE 壓力感應(yīng)檢測(cè) * Sensor.TYPE_TEMPERATURE 溫度感應(yīng)檢測(cè) * Sensor.TYPE_PROXIMITY 接近感應(yīng)檢測(cè)* SENSOR_DELAY_FASTEST 最低延遲,一般不是特別敏感的處理不推薦使用,該種模式可能造成手機(jī)電力大量消耗,由于傳遞的為原始數(shù)據(jù),算法不處理好將會(huì)影響游戲邏輯和UI的性能,所以不推薦使用。 * SENSOR_DELAY_GAME 游戲延遲,一般絕大多數(shù)的實(shí)時(shí)性較高的游戲都使用該級(jí)別 * SENSOR_DELAY_NORMAL 標(biāo)準(zhǔn)延遲,對(duì)于一般的益智類(lèi)或EASY級(jí)別的游戲可以使用,但過(guò)低的采樣率可能對(duì)一些賽車(chē)類(lèi)游戲有跳幀現(xiàn)象。 * SENSOR_DELAY_UI 用戶(hù)界面延遲,一般對(duì)于屏幕方向自動(dòng)旋轉(zhuǎn)使用,相對(duì)節(jié)省電能和邏輯處理,一般游戲開(kāi)發(fā)中我們不使用。 */ 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) {}@SuppressWarnings("deprecation") @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]; } } } 將上面的內(nèi)容保存為ShakeActivity.java文件,在 MainActivity.java 使用以下方法 ShakeListener mShaker = new ShakeListener(this); mShaker.setOnShakeListener(new ShakeListener.OnShakeListener() { public void onShake() { // action while shaking setTextView("shaked"); } });

總結(jié)

以上是生活随笔為你收集整理的Android手机摇一摇的实现SensorEventListener的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: bl动漫在线观看 | 亚洲一二三四视频 | 成人免费看视频 | 一区二区国产视频 | 国产av无码专区亚洲av毛网站 | 男女激情av | 岛国一区| 免费看欧美一级片 | 午夜精品久久久久久久99黑人 | 亚洲av无码国产精品永久一区 | 午夜诱惑痒痒网 | 男女一起插插插 | 日日摸日日添日日躁av | 国产精品人成在线观看免费 | 第一毛片 | 日本三级韩国三级三级a级中文 | 亚洲精品国产精品乱码不卡√香蕉 | 亚洲一区无 | 啪啪福利 | 日本丰满肉感bbwbbwbbw | 午夜一二三区 | 中国精品毛片 | 成人网av | 人妻色综合网站 | 国产成人精品久久久 | 免费激情| 精品无码久久久久久久久果冻 | 国产精品毛片 | 播放男人添女人下边视频 | 99久久婷婷国产综合精品电影 | 久久久亚洲 | www.色妞| 亲嘴扒胸摸屁股免费视频日本网站 | 伊人成年综合网 | 亚洲熟妇色自偷自拍另类 | 天堂中文在线免费观看 | 国产一区999 | 在线不卡日韩 | 射死你天天日 | 亚洲蜜臀av乱码久久精品蜜桃 | 91麻豆精品国产91久久久无需广告 | 又黄又爽无遮挡 | 嫩草99 | 一区二区中文字幕在线观看 | 精品久久影院 | 中国1级毛片 | 亚洲视频导航 | 欧美 日韩 国产一区 | 5个黑人躁我一个视频 | 亚洲国产精品成人无码区 | 亚洲性图一区二区 | 中文亚洲av片在线观看 | 强开乳罩摸双乳吃奶羞羞www | 亚洲精品久久久久久久久久久久久 | 欧美片网站免费 | 欧美久久久 | 波多野结衣av在线播放 | 九九啪| 亚洲激情五月 | 91精品国产91综合久久蜜臀 | 超碰av在线播放 | 亚洲伦理网 | 狂野少女电影在线观看国语版免费 | 淫综合网 | 懂色aⅴ国产一区二区三区 亚洲欧美国产另类 | 乖疼润滑双性初h | 午夜影剧院 | av高清 | 亚洲天堂av在线免费观看 | 一起草在线视频 | 东方欧美色图 | 成人国产在线观看 | 亚洲av无码成人精品国产 | av片在线免费看 | 成人性视频免费网站 | 多毛的亚洲人毛茸茸 | 日本黄色大片免费看 | 狠狠干夜夜草 | 国产一区二区视频网站 | 国产成人在线一区二区 | 免费毛片在线播放 | 男人你懂的网站 | 精品久久久久久久久久岛国gif | 黑人操中国女人视频 | 爱久久 | 在线美女av| 性xxxx另类xxⅹ | 精品黑人一区二区三区观看时间 | eeuss鲁片一区二区三区在线观看 | 中文字幕亚洲一区二区三区五十路 | 日韩色图片 | 亚洲精品久久久久久国 | 日韩一区欧美一区 | 日本精品一区二区在线观看 | 久久久久久久久久成人 | 欧美三日本三级少妇三 | 欧美日韩一区二区三区免费 | 手机看片1024国产 | 中文字幕11页中文字幕11页 |