条码扫描二维码 ZXing android 源码简化及错误(Could not find class 'com.google.zxing.ResultPoint)修改

http://linglong117.blog.163.com/blog/static/277145472012112541150874/



1、
http://www.apkbus.com/android-44422-1-1.html  

android开源源码之 条形码处理类库 ZXing


2、

备注:下面的简化包运行后会出Could not find class 'com.google.zxing.ResultPoint', referenced from method com.zijunlin.Zxing.Demo.view.ViewfinderView.onDraw
这些错误
正如下:
http://bbs.189works.com/thread-49058-1-1.html
Could not find class 'com.google.zxing.Result'
没有这个类 com.google.zxing.Result
哦,我刚才找了下资料 貌似是引用的jar包有错误  
然后按照这个
右键工程,
Build path,
java build path,选择libraries
在右边的按钮中点击“Add Library”
选择“User library”,点击“下一步”
点击“User librarys”按钮
在出现的界面中点击“New..”按钮
在弹出的界面中随便起一个名字,点击“确定”
点击“Add jars”按钮选择第三方jar包,点击“确定”完成。

后面的步骤很重要,如果不进行后面的操作。在Eclipse里显示编译通过,不会有错误,但在模拟器或真机上运行的时候可能就会出现java.lang.noclassdeffounderror之类的错误:
1、在Android项目根目录下新建一个libs文件夹;
2、把你需要的导入的第三方Jar包复制进这个目录;
3、在libs目录上点右键,选Bulid path –> Use as source folder。
目前可以运行了


http://www.cnblogs.com/keyindex/archive/2011/06/08/2074900.html

条码扫描二维码扫描——ZXing android 源码简化

前言

  最近公司的Android项目需要用到摄像头做条码或二维码的扫描,Google一下,发现一个以Apache License 2.0 开源的 ZXing项目。Zxing项目里的Android实现太过复杂多余东西太多,得对其进行简化。

前提条件

  下载源代码:点击这里

  编译核心库:Zxing的主页上有介绍具体步骤,大家也可以参照这篇博文:android 条码识别软件开发全解析(续2详解绝杀!)

导入项目

  打开Eclipse 导入 源码中的 Android 项目,然后右击项目 选择“Build path”——》"Add External Archives" 把核心库 core.jar文件加入到项目中。

此时编译一下项目,会发现报错,“ Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?”之类的。打开raw 下的Values 发现错误是在一个<String>上。这里把 “preferences_custom_product_search_summary” 里的  %s  %f  全部都改成  %1$s  %1$f(因为我们用不到多国语言,建议只保留默认的Value ,其他全部删除)。

  原因:由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本的aapt编译起来会比老版本更加的严格,然后在Android最新的开发文档的描述String的部分,已经说明如何去设置 %s 等符号

  “If you need to format your strings using String.format(String, Object...) , then you can do so by putting your format arguments in the string resource. For example, with the following resource:

  <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

  In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguements from your application...“

  经过以上步骤后项目应该就可以运行了。

  但是ZXing的android项目东西太多了,有很多是我们不需要的,得新建另一个项目简化它。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中使用二维码扫描和生成功能需要借助zxing.jar包。zxing是一个开源的二维码处理库,可以实现二维码扫描和生成。 首先,我们需要将zxing.jar包添加到我们的Android Studio项目中。可以通过两种方式来导入这个库。一种方式是将zxing.jar包拷贝到app/libs目录下,然后在build.gradle文件中添加依赖。另一种方式是通过在build.gradle文件的dependencies中添加远程依赖来导入库。如下所示: ``` dependencies { implementation 'com.google.zxing:core:3.4.1' } ``` 导入zxing.jar包后,我们就可以使用其中的类和方法来实现二维码扫描和生成。 要实现二维码扫描功能,我们可以使用IntentIntegrator类。在需要扫描二维码的地方,调用IntentIntegrator的initiateScan方法即可启动扫描界面。扫描结果可以通过onActivityResult方法来获取。可以参考下面的代码片段: ``` IntentIntegrator integrator = new IntentIntegrator(this); integrator.setCaptureActivity(CustomCaptureActivity.class); //自定义扫描界面 integrator.setOrientationLocked(false); integrator.initiateScan(); @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if (result != null) { if (result.getContents() == null) { //扫描取消 } else { String content = result.getContents(); //获取扫描结果 } } } ``` 要实现二维码的生成功能,我们可以使用MultiFormatWriter类和BitMatrix类。我们可以通过调用MultiFormatWriter的encode方法来生成BitMatrix,然后将BitMatrix转换成Bitmap。可以参考下面的代码片段: ``` MultiFormatWriter writer = new MultiFormatWriter(); try { BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height); int[] pixels = new int[width * height]; for (int y = 0; y < height; y++) { int offset = y * width; for (int x = 0; x < width; x++) { pixels[offset + x] = bitMatrix.get(x, y) ? Color.BLACK : Color.WHITE; } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, width, 0, 0, width, height); imageView.setImageBitmap(bitmap); //在ImageView中显示生成的二维码 } catch (WriterException e) { e.printStackTrace(); } ``` 通过以上步骤,我们就可以在Android Studio中实现二维码扫描和生成功能了。注意,在使用zxing库的时候,我们需要添加相关的权限,如相机权限等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值