【问题标题】:S.M.T.H. - height measurement (Android) [closed]S.M.T.H. - 高度测量(Android)[关闭]
【发布时间】:2015-12-13 13:02:36
【问题描述】:
不久前,一个名为 Send Me To Heaven 的有趣应用程序遍布新闻等。它的目标是将您的手机扔到尽可能高的地方并接住它,该应用程序会测量抛出的高度。
我的问题是如何在 android 中编码?我认为加速器传感器以某种方式涉及?
有些想法会很棒:)
PS:我只是出于好奇而询问,当然是为了产生缘故——也许,有时,知道如何实现这样的事情会很方便。
【问题讨论】:
标签:
android
height
measurement
accelerator
【解决方案1】:
android中提供了一个接口SensorEventListener。这个监听器提供了我们可以从任何传感器捕获事件的方法。您说的游戏可能使用了这个界面,在传感器是加速度计时得到读数,如下图所示,然后将最大读数显示为分数。
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
return;
switch (mDisplay.getRotation()) {
case Surface.ROTATION_0:
mSensorX = event.values[0];
mSensorY = event.values[1];
break;
case Surface.ROTATION_90:
mSensorX = -event.values[1];
mSensorY = event.values[0];
break;
case Surface.ROTATION_180:
mSensorX = -event.values[0];
mSensorY = -event.values[1];
break;
case Surface.ROTATION_270:
mSensorX = event.values[1];
mSensorY = -event.values[0];
break;
}
mSensorZ = event.values[2];
mSensorTimeStamp = event.timestamp;
}