先上个图:
由于之前集成的zxing扫塑料上面的码不太好扫,决定优化。Zxing的解码我们优化不了了,经过测试,是因为亮度不够,所以最终选择在灯光和放大焦距完成了最终的优化。
设置模式只需要几行代码即可:
//得到Camera对象
Camera camera = CameraManager.get().getCamera();
Camera.Parameters parameters = camera.getParameters();
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
//设置给相机
camera.setParameters(parameters);
我们来看看有哪些模式可以设置,基本包含了所有的设置:
//1、设置相机滤镜模式
public synchronized void changeEffect(final Button btn){
PopupMenu pop = new PopupMenu(context, btn);
pop.getMenuInflater().inflate(R.menu.menu, pop.getMenu());
pop.show();
pop.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int i = item.getItemId();
if (i == R.id.effect_none) {
parameters.setColorEffect(Camera.Parameters.EFFECT_NONE);
}
else if (i == R.id.effect_mono) {
parameters.setColorEffect(Camera.Parameters.EFFECT_MONO);
}
else if (i == R.id.effect_negative) {
parameters.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE);
}
else if (i == R.id.effect_solarize) {
parameters.setColorEffect(Camera.Parameters.EFFECT_SOLARIZE);
}
else if (i == R.id.effect_sepia) {
parameters.setColorEffect(Camera.Parameters.EFFECT_SEPIA);
}
else if (i == R.id.effect_posterize) {
parameters.setColorEffect(Camera.Parameters.EFFECT_POSTERIZE);
}
else if (i == R.id.effect_whiteboard) {
parameters.setColorEffect(Camera.Parameters.EFFECT_WHITEBOARD);
}
else if (i == R.id.effect_blackboard) {
parameters.setColorEffect(Camera.Parameters.EFFECT_BLACKBOARD);
}
else if (i == R.id.effect_aqua) {
parameters.setColorEffect(Camera.Parameters.EFFECT_AQUA);
}
btn.setText(item.getTitle());
setParameters(camera, parameters);
return false;
}
});
}
//2、设置相机对焦模式
public synchronized void changeFocus(final Button btn){
PopupMenu pop = new PopupMenu(context, btn);
pop.getMenuInflater().inflate(R.menu.menu_focus, pop.getMenu());
pop.show();
pop.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int i = item.getItemId();
if (i == R.id.focus_mode_auto) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
}
else if (i == R.id.focus_mode_infinity) {
parameters