主要修改zxing中的.Zxing.camera 包下的CameraManager类
开关代码 在CamereManager中增加
//提供給其他activity調用 public void flashHandler() { //camera.startPreview(); Parameters parameters = camera.getParameters(); // 判断闪光灯当前状态來修改 if (Parameters.FLASH_MODE_OFF.equals(parameters.getFlashMode())) { turnOn(parameters); } else if (Parameters.FLASH_MODE_TORCH.equals(parameters.getFlashMode())) { turnOff(parameters); } } //開 private void turnOn(Parameters parameters) { parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(parameters); } //關 private void turnOff(Parameters parameters) { parameters.setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(parameters); }
通过imagebutton来调用
<ImageButton android:id="@+id/btn_flashlight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:background="#00000000" android:src="@drawable/flashlight" />
在CaptureActivity中监听
initTitle()方法中加入
flashImageButton = (ImageButton) findViewById(R.id.btn_flashlight); flashImageButton.setOnClickListener(new OnClickListener() { //监听闪光灯按钮 @Override public void onClick(View v) { CameraManager.get().flashHandler(); } });
ok 搞定!