view plain
private SensorManager sensorMgr;
Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
//保存上一次 x y z 的坐标
float bx = 0;
float by = 0;
float bz = 0;
long btime = 0;//这一次的时间
sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
SensorEventListener lsn = new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
float x = e.values[SensorManager.DATA_X];
float y = e.values[SensorManager.DATA_Y];
float z = e.values[SensorManager.DATA_Z];
//在这里我们可以计算出 X Y Z的数值 下面我们就可以根据这个数值来计算摇晃的速度了
//我想大家应该都知道计算速度的公事 速度 = 路程/时间
//X轴的速度
float speadX = (x - bx) / (System.currentTimeMillis() - btime);
//y轴的速度
float speadY = (y - by) / (System.currentTimeMillis() - btime);
//z轴的速度
float speadZ = (z - bz) / (System.currentTimeMillis() - btime);
//这样简单的速度就可以计算出来 如果你想计算加速度 也可以 在运动学里,加速度a与速度,
//位移都有关系:Vt=V0+at,S=V0*t+1/2at^2, S=(Vt^2-V0^2)/(2a),根据这些信息也可以求解a。
//这里就不详细介绍了 公事 应该初中物理课老师就教了呵呵~~
bx = x;
by = y;
bz = z;
btime = System.currentTimeMillis();
}
public void onAccuracyChanged(Sensor s, int accuracy) {
}
};
// 注册listener,第三个参数是检测的精确度
sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);
认真点行不,不知道就不要随便拷段代码给我
搞定,修改设置
你说怎么设置的?java代码,还xml