Skip to content

Repository files navigation

LicenseplatformAPIPRs WelcomeCode Climate

SweetCamera主要是为了解决兼容android各种机型的相机自动对焦的问题的项目,这里采用了基于传感器的方案,希望能够帮助您解决自动对焦问题。 详细可以看博客enter description here

Preview:

效果图

Core Code

具体原理是根据传感器来判断手机的运动状态,如果手机从静止状态变成运行状态后再次进入静止状态,此时就是手机的对焦时机。 通过传感器方式来触发对焦,可以兼容几乎所有拥有传感器的手机的对焦问题。

if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
intx = (int) event.values[0];
inty = (int) event.values[1];
intz = (int) event.values[2];
mCalendar = Calendar.getInstance();
longstamp = mCalendar.getTimeInMillis();
intsecond = mCalendar.get(Calendar.SECOND);
if (STATUE != STATUS_NONE) {
intpx = Math.abs(mX - x);
intpy = Math.abs(mY - y);
intpz = Math.abs(mZ - z);
doublevalue = Math.sqrt(px * px + py * py + pz * pz);
if (value > 1.4) {
STATUE = STATUS_MOVE;
} else {
//上一次状态是move,记录静态时间点if (STATUE == STATUS_MOVE) {
lastStaticStamp = stamp;
canFocusIn = true;
}
if (canFocusIn) {
if (stamp - lastStaticStamp > DELEY_DURATION) {
//移动后静止一段时间,可以发生对焦行为if (!isFocusing) {
canFocusIn = false;
if (mCameraFocusListener != null) {
mCameraFocusListener.onFocus();
}
}
}
}
STATUE = STATUS_STATIC;
}
} else {
lastStaticStamp = stamp;
STATUE = STATUS_STATIC;
}
mX = x;
mY = y;
mZ = z;
}

End

如果你觉得不错, 对你有帮助, 欢迎点个 fork, star, follow , 也可以帮忙分享给你更多的朋友, 这是给作者最大的动力与支持。

About

SweetCamera主要是为了解决兼容android各种机型的相机自动对焦的问题的项目,这里采用了基于传感器的方案。

Resources

Stars

244 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages