通过上一篇 Android 自定义Camera(一) 的介绍,我们已经可以完成一个可拍照的基础demo, 当然其中也有很多要注意的细节问题,比如预览方向,设置预览比例和返回图片的比例等等问题,详情可以看上一篇博客,这次我会丰富相机的功能加入 闪光灯模式,正方形拍摄,延迟拍摄和前后摄像头切换功能,接下来就一个一个开始吧。(下面会有完整源码地址)
闪光灯模式
相机的闪光灯模式有三种, 自动,关闭, 打开, 代码也 比较好理解,在拍照之前切换调用就可以,个别地方加了注释,这里我贴上代码:
1 关闭情况:
/**
* 关闭闪光灯
*
* @param mCamera
*/
public void turnLightOff(Camera mCamera) {
if (mCamera == null) {
return;
}
Camera.Parameters parameters = mCamera.getParameters();
if (parameters == null) {
return;
}
//获取手机支持的模式
List<String> flashModes = parameters.getSupportedFlashModes();
String flashMode = parameters.getFlashMode();
// Check if camera flash exists
if (flashModes == null) {
return;
}
if (!Camera.Parameters.FLASH_MODE_OFF.equals(flashMode)) {
// Turn off the flash
if (flashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(parameters);
} else {
}
}
}
2 自动模式:
/**
* 自动模式闪光灯
*
* @param mCamera
*/
public void turnLightAuto(Camera mCamera) {
if (mCamera == null) {
return;
}
Camera.Parameters parameters