2

我想在一个 android 项目中使用 zxing。我已经下载了代码并且示例应用程序现在正在运行(ZXingTestActivity)。供您参考,我对原生 android 编码不是很熟悉。

我想使用 zxing 扫描二维码来配置应用程序。为了避免普通二维码和配置二维码之间的混淆,我想在屏幕或纸上打印反转/负二维码。

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

在 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 添加相机设置以及如何格式化?是否可以?还是有另一种方法可以将相机配置为倒置/负片模式?

4

3 回答 3

4

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

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

  2. 将项目添加到eclipse

  3. 打开 CameraPreview.java

  4. 在类中添加一个私有变量:

    私人相机。参数 mCameraParams;

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

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

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

还认为 ZBar 可以更快地检测损坏的条形码。与我在另一个项目中使用的 PC 版本相同,并且做得很好。眨眼,代码就在那里。没有什么花哨的东西,就是好!

于 2013-01-24T23:45:19.147 回答
2

@Erwinus,这是代码。我希望现在很清楚为什么它是您在之前的评论中已经完全给出的东西。更多的功课和更少的指责使 SO 成为一个快乐的地方。

mCameraParams = camera.getParameters();
if (mCameraParams.getSupportedColorEffects().contains(Camera.Parameters.EFFECT_NEGATIVE) {
  mCameraParams.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE);
}
mCamera.setParameters(mCameraParams);
于 2013-01-27T21:32:26.500 回答
1

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

于 2013-01-24T20:31:10.770 回答