二维码扫描和生成网上有很多demo我就不细说了,今天我主要讲的是在原有的代码里添加摄像头灯光。我们都知道夜间你去扫码是很难扫的,需要另一个人打开摄像头的灯光辅助你,这样很麻烦。所以我在扫码的界面添加了个灯光开关的checkbox。
打开扫码界面MipcaActivityCapture的UI添加个checkBox,如下图:
默认灯是关闭的
private boolean isLight;
/*亮灯的监听*/
View.OnClickListener lightListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!isLight) {
CameraManagerMy.get().flashControlHandler();
checkBox.setChecked(true);
isLight = true;
} else {
CameraManagerMy.get().flashControlHandler();
checkBox.setChecked(false);
isLight = false;
}
}
};
通过调用系统的摄像头灯光工具类来实现这个功能
/*闪光灯控制*/
public boolean flashControlHandler() {
Camera.Parameters parameters = camera.getParameters();
if (Camera.Parameters.FLASH_MODE_OFF.equals(parameters.getFlashMode())) {
turnOn(parameters);
return true;
} else if (Camera.Parameters.FLASH_MODE_TORCH.equals(parameters.getFlashMode())) {
turnOff(parameters);
}
return false;
}
private void turnOn(Camera.Parameters parameters) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
}
private void turnOff(Camera.Parameters parameters) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
}