github 地址:https://github.com/zhouguangfu09/StepCounter
1. 程序图标
2. 点击图标,进入如下界面:
这个界面会有缓冲效果,然后进入程序的主界面.
3.程序主界面:
点击开始按钮,并甩动胳膊,计步器开始计数,也可以暂停计数,如下图所示:
5.每走150步,系统奖励一个星星,最高10颗星星。同时软件会粗略的计算行程、热量、速度等参数。如上图所示。
6.点击手机菜单键,点击“设置”选项,进入如下界面:
软件记步数的精准度跟用户的补偿以及体重有关,也跟用户设置的传感器的灵敏度有关系,在设置页面可以对相应的参数进行调节。一旦调节结束,可以重新开始。
7.在手机的主界面按返回键,退出程序。
源码部分解析:
源码主要包含UI控制逻辑代码以及胳膊甩动检测步数代码,下面重点说一下 步数检测代码,主要集中在StepDector.java文件中:
public void onSensorChanged(SensorEventevent) {
// Log.i(Constant.STEP_SERVER, "StepDetector");
Sensor sensor = event.sensor;
// Log.i(Constant.STEP_DETECTOR,"onSensorChanged");
synchronized (this) {
if (sensor.getType() ==Sensor.TYPE_ORIENTATION) {
} else {
int j =(sensor.getType() == Sensor.TYPE_ACCELEROMETER) ? 1 : 0;
if (j == 1) {
float vSum =0;
for (int i =0; i < 3; i++) {
finalfloat v = mYOffset + event.values[i] * mScale[j];
vSum+= v;
}
int k = 0;
float v =vSum / 3;
floatdirection