我想在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添加相机设置以及如何格式化?可能吗?或者是否有另一种方法将相机配置为反转/反转模式?
答案 0 :(得分:4)
我不知道ZXing是否完全不可能,但ZBar是可能的!
首先在sourceforge上下载ZBar android版本: http://sourceforge.net/projects/zbar/files/AndroidSDK/
将项目添加到eclipse
打开CameraPreview.java
将私有var添加到类中:
私人Camera.Parameters mCameraParams;
在构造函数CameraPreview中的行mCamera = camera;
后面添加以下行:
mCameraParams = camera.getParameters(); mCameraParams.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE); mCamera.setParameters(mCameraParams);
就是这样! (运行项目)
还要认为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周期。