gpt4 book ai didi

android - 如何用android检测抖动事件?

转载 作者:IT老高 更新时间:2023-10-28 13:03:42 26 4
gpt4 key购买 nike

如何使用 android 检测抖动事件?如何检测抖动方向?

我想在抖动发生时更改 ImageView 中的图像。

最佳答案

从代码来看,需要实现SensorListener:

public class ShakeActivity extends Activity implements SensorListener

您需要获取 SensorManager:

sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);

并使用所需的标志注册此传感器:

sensorMgr.registerListener(this,
SensorManager.SENSOR_ACCELEROMETER,
SensorManager.SENSOR_DELAY_GAME);

在您的 onSensorChange() 方法中,您确定它是否是震动:

public void onSensorChanged(int sensor, float[] values) {
if (sensor == SensorManager.SENSOR_ACCELEROMETER) {
long curTime = System.currentTimeMillis();
// only allow one update every 100ms.
if ((curTime - lastUpdate) > 100) {
long diffTime = (curTime - lastUpdate);
lastUpdate = curTime;

x = values[SensorManager.DATA_X];
y = values[SensorManager.DATA_Y];
z = values[SensorManager.DATA_Z];

float speed = Math.abs(x+y+z - last_x - last_y - last_z) / diffTime * 10000;

if (speed > SHAKE_THRESHOLD) {
Log.d("sensor", "shake detected w/ speed: " + speed);
Toast.makeText(this, "shake detected w/ speed: " + speed, Toast.LENGTH_SHORT).show();
}
last_x = x;
last_y = y;
last_z = z;
}
}
}

抖动阈值定义为:

private static final int SHAKE_THRESHOLD = 800;

还有其他一些方法可以检测抖动运动。看看这个link. (如果该链接不起作用或链接失效,look at this web archive。)。

看看这个example用于 android 抖动检测监听器。

注意: SensorListener 已弃用。我们可以使用 SensorEventListener 代替。 Here is a quick example using SensorEventListener.

谢谢。

关于android - 如何用android检测抖动事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5271448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com