showsf_sv = (SurfaceView)findViewById(R.id.camera_showsf_sv ); // 成像控件
showsf_sv.setOnTouchListener(new TouchListener());
private final class TouchListener implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
/** 通过与运算保留最后八位 MotionEvent.ACTION_MASK = 255 */
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
//设置聚焦
Point point = new Point((int) event.getX(), (int) event.getY());
onFocus(point, autoFocusCallback);
mFocusImageView.startFocus(point);
break;
}
return true;
}
}
private final Camera.AutoFocusCallback autoFocusCallback=new Camera.AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
//聚焦之后根据结果修改图片
isFocusSuccess =success;
if (success) {
mFocusImageView.onFocusSuccess();
}else {
//聚焦失败显示的图片,由于未找到合适的资源,这里仍显示同一张图片
mFocusImageView.onFocusFailed();
}
}
};
/**
* 手动聚焦
* @param point 触屏坐标
*/
protected void