1、利用硬件传感器去实现自动对焦
注册传感器:
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_UI);
传感器接口:
implements SensorEventListener
实现传感器接口方法:
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
if (initFirstSensor) {//初始化默认进入时候的坐标
mLastX = x;
mLastY = y;
mLastZ = z;
initFirstSensor = false;
return;
}
float deltaX = Math.abs(mLastX - x);
float deltaY = Math.abs(mLastY - y);
float deltaZ = Math.abs(mLastZ - z);
if (deltaX > 2.5 || deltaY > 2.5 || deltaZ > 2.5) {//计算坐标偏移值
if (!isPhoto && mCamera != null) {
playFocusAnimal(focusX, focusY);//播放对焦动画
// mCamera.autoFocus(autoFocusCallback);//调用相机对焦
}
}
mLastX = x;
mLastY = y;
mLastZ = z;
}