Android实现摇一摇功能
都是一些简单的代码布局:<?xml version="1.0" encoding="utf-8"?> 代码:package main.beini.com.shakeapp; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private ShakeListener mShakeListener = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mShakeListener = new ShakeListener(this); mShakeListener.setOnShakeListener(new shakeLitener()); } @Override protected void onDestroy() { super.onDestroy(); mShakeListener.stop(); } private class shakeLitener implements ShakeListener.OnShakeListener { @Override public void onShake() { // Animation.startAnim(GamesActivity.this, findViewById(R.id.game_bg_2), findViewById(R.id.game_bg_3)); Toast.makeText(MainActivity.this, "摇一摇", Toast.LENGTH_SHORT).show(); } } }
package main.beini.com.shakeapp; 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 { String TAG = "ShakeListener"; // 速度阈值,当摇晃速度达到这值后产生作用 private static final int SPEED_SHRESHOLD = 5000; // 两次检测的时间间隔 private static final int UPTATE_INTERVAL_TIME = 70; // 传感器管理器 private SensorManager sensorManager; // 传感器 private Sensor sensor; // 重力感应监听器 private OnShakeListener onShakeListener; // 上下文 private Context mContext; // 手机上一个位置时重力感应坐标 private float lastX; private float lastY; private float lastZ; // 上次检测时间 private long lastUpdateTime; // 构造器 public ShakeListener(Context c) { // 获得监听对象 mContext = c; start(); } // 开始 public void start() { // 获得传感器管理器 sensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); if (sensorManager != null) { // 获得重力传感器 sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); } // 注册 if (sensor != null) { sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME); } } // 停止检测 public void stop() { sensorManager.unregisterListener(this); } // 设置重力感应监听器 public void setOnShakeListener(OnShakeListener listener) { onShakeListener = listener; } // 重力感应器感应获得变化数据 public void onSensorChanged(SensorEvent event) { // 现在检测时间 long currentUpdateTime = System.currentTimeMillis(); // 两次检测的时间间隔 long timeInterval = currentUpdateTime - lastUpdateTime; // 判断是否达到了检测时间间隔 if (timeInterval < UPTATE_INTERVAL_TIME) return; // 现在的时间变成last时间 lastUpdateTime = currentUpdateTime; // 获得x,y,z坐标 float x = event.values[0]; float y = event.values[1]; float z = event.values[2]; // 获得x,y,z的变化值 float deltaX = x - lastX; float deltaY = y - lastY; float deltaZ = z - lastZ; // 将现在的坐标变成last坐标 lastX = x; lastY = y; lastZ = z; double speed = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) / timeInterval * 10000; // 达到速度阀值,发出提示 if (speed >= SPEED_SHRESHOLD) { onShakeListener.onShake(); } } public void onAccuracyChanged(Sensor sensor, int accuracy) { } // 摇晃监听接口 public interface OnShakeListener { public void onShake(); } }
专业人士教你正确选购扫地机器人究竟哪款扫地机能脱颖而出?我们购买扫地机器人的初衷,就是为了能够减轻自己的家务负担,但是,在入手扫地机器人的时候,也会有很多麻烦扫地机器人买对了就能解放双手坐享其成但是买错了就是浪费精力和金钱对于新手小白来
扫地机器人选购要领,让你放心购买随着科技的发展扫地机也在逐步地更新换代。市面上,扫地机器人品牌层出不穷,据统计有近200个。每个品牌的扫地机都有所不同,所以我们购买时还是要多对比一下的。以下是给大家整理的选购要领
扫地机器人选谁好?细节控教你选择不得不说现在科技的发达真真实实便利了不少的家庭随着生活水平的提高,我们对自己的生活质量慢慢也有了要求越来越多的人们都习惯用扫地机器人。而最近几年的扫地机器人明显有了更大的进化升级,
实际体验比宣传更重要,智能扫地机器人选购与安利为了能释放双手,我很早就接触过扫地机器人了,对于我这种懒癌晚期患者来说,简直就是解放双手的一大利器。不过,在我看来选扫地机器人不能光看宣传,实际体验比宣传更重要。而怎么选择扫地机器
0元转让股权,印花税缴不缴?问题内容股东A转让标的公司B的股权,B公司注册资本1000万,未实际到资。实收资本为0,B公司没有产生收入,未分配利润为负,净资产为负。请问转让B公司股权是否可以按0元转让?如果按
经济责任审计中责任界定的六性原则在经济责任审计中,对审计发现问题的责任界定是个难点,特别对于经验少的审计人员。下面有六个原则,在进行责任界定时,可以参照使用。一匹配性原则审计发现问题应该与被审计对象的权力和责任相
苏宁全员争当提振湖北经济的排头兵,全国吃货纷纷点赞此前,苏宁被爆出全民营销,各种商品广告,小到口罩,大到私人飞机,更有苏宁副总裁在朋友圈卖男士内裤等消息在网络上吸引了众人的眼球。这个极具争议性的决定自然引来了四面八方的好奇关注。有
极度养眼的优秀天文摄影作品为我们展现出宇宙的神秘如果你住在有光污染的地方,你可能很难看到夜空的光辉。有时,在忙碌的生活中,我们甚至忘记了抬头欣赏这份独特的景观。这些摄影作品都是由格林威治皇家天文台举办的2021年天文摄影师大赛的
大白话讲述反物质之谜它是个啥?为什么它没有毁灭宇宙?对于很多人来说,这听起来就像是科幻小说正常物质有一个邪恶的双胞胎,一旦两者接触就会相互湮灭。但是,这种反物质是非常真实的,尽管经过了数十年的研究,它仍然非常神秘。那么,反物质究竟是
最全新版玄冰400测试!居然还打不过老款?大家好,今天给大家带来的是九州风神新版玄冰400的评测,九州风神作为大陆这边最大的散热器厂商旗下有很多产品都值得细细解读下,但要说到让九州风神奠定市场还是百元价位的玄冰系列。最近玄
装电脑可以在哪个硬件上省钱?内存和固态能可以决定电脑性能嘛前两期我们说了传统认知里的CPU主板显卡这三件为什么不能省,这一期我们就来讲讲内存和硬盘。相对于前面的三大件,内存和硬盘本身的价值就是比较低,说白了,相对于前面的CPU显卡,这些硬