ZXing on Android:如何将相机设置为负模式?

时间:2013-01-24 19:06:58

标签: android camera zxing mode

我想在android项目中使用zxing。我已下载代码,示例应用程序正在运行(ZXingTestActivity)。为了您的信息,我不熟悉编码本机android。

我想使用zxing扫描qr-code来配置应用程序。为了避免正常qrcodes和配置qrcodes之间的混淆,我想在屏幕或纸上打印反转/负qrcodes。

为了能够扫描这些反转/负qrcodes,相机必须处于负模式。我怎样才能做到这一点?我不知道从哪里开始......

在ZXingTestActivity.java中有一个clicklistener,它为IntentIntegrator指定了一些额外的参数,例如:

private final Button.OnClickListener scanProduct = new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
      IntentIntegrator integrator = new IntentIntegrator(ZXingTestActivity.this);
      integrator.addExtra("SCAN_WIDTH", 800);
      integrator.addExtra("SCAN_HEIGHT", 200);
      integrator.addExtra("RESULT_DISPLAY_DURATION_MS", 3000L);
      integrator.addExtra("PROMPT_MESSAGE", "Custom prompt to scan a product");
      integrator.initiateScan(IntentIntegrator.PRODUCT_CODE_TYPES);
    }
  };

是否可以使用addExtra添加相机设置以及如何格式化?可能吗?或者是否有另一种方法将相机配置为反转/反转模式?

3 个答案:

答案 0 :(得分:4)

我不知道ZXing是否完全不可能,但ZBar是可能的!

  1. 首先在sourceforge上下载ZBar android版本: http://sourceforge.net/projects/zbar/files/AndroidSDK/

  2. 将项目添加到eclipse

  3. 打开CameraPreview.java

  4. 将私有var添加到类中:

    私人Camera.Parameters mCameraParams;

  5. 在构造函数CameraPreview中的行mCamera = camera;后面添加以下行:

    mCameraParams = camera.getParameters(); mCameraParams.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE); mCamera.setParameters(mCameraParams);

  6. 就是这样! (运行项目)

  7. 还要认为ZBar可以更快地检测到损坏的条形码。与我在另一个项目中使用的PC版本相同,并且可以很好地完成工作。眨眼睛,代码在那里。没有花哨的东西,只是好!

答案 1 :(得分:2)

@Erwinus,这是代码。我希望现在已经清楚为什么你在之前的评论中已经完全给出了它。更多的家庭作业和更少的指责使SO成为一个快乐的地方。

mCameraParams = camera.getParameters();
if (mCameraParams.getSupportedColorEffects().contains(Camera.Parameters.EFFECT_NEGATIVE) {
  mCameraParams.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE);
}
mCamera.setParameters(mCameraParams);

答案 2 :(得分:1)

很抱歉,无法通过Intent执行此操作。添加此选项作为选项的干净补丁将具有吸引力。唯一的问题是相机必须支持“负面”模式。然后它是微不足道的(您可以将此行为视为Barcode Scanner+中的可选选项)。否则你必须自己翻转图像。不难,但需要一些代码和CPU周期。