因此,我编写了一个用于掷骰子的Android应用,具有可调骰子(D4-100),金额和奖金。当我按下滚动按钮时,一切正常,但我也希望它对摇动手机做出反应。问题是,当我摇动一次时,它会显示结果,但是如果我摇动太久,显示的结果将被明显覆盖-我不希望用户继续摇动直到结果被接受!是否有某种方法可以收集所有ShakeEvent,并仅触发最后一个发生的事件?以下是与这些ShakeEvent相关的onCreate里面的内容:
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
ShakeDetector shakeDetector = new ShakeDetector(this);
shakeDetector.start(sensorManager);
这是“ hearShake()”方法(来自Square,Inc.的地震方法:]]
@Override public void hearShake() { Toast.makeText(this, "Rolling...", Toast.LENGTH_SHORT).show(); Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { v.vibrate(VibrationEffect.createOneShot(250,VibrationEffect.DEFAULT_AMPLITUDE)); } else { v.vibrate(250); } rollButton.performClick(); }
如果您想查看更多或所有代码,请告诉我!预先感谢您的帮助!
因此,我编写了一个用于掷骰子的Android应用,具有可调骰子(D4-100),金额和奖金。当我按下滚动按钮时,一切正常,但我也希望它对摇动手机做出反应。 ...
一种解决方法是记录抖动的记录时间,并忽略在接下来的3秒钟内发生的任何其他抖动。这样,他们就必须做很长时间的摇动才能使它计为多个。