在Android上使用ZXing识别条形码/二维码

 

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!

       越来越多的手机具备自动对焦的拍摄功能,这也意味着这些手机可以具备条码扫描的功能.......手机具备条码扫描的功能,可以优化购物流程,快速存储电子名片(二维码)等

      本文使用ZXing 1.6实现条码/二维码识别。ZXing是个很经典的条码/二维码识别的开源类库,long long ago,就有开发者在J2ME上使用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力,而目前已经有不少Android手机具备自动对焦的功能。

本文代码运行的结果如下,使用91手机助手截图时,无法截取SurfaceView的实时图像:

本文使用了ZXing1.6的core,即把/zxing-1.6/core/下的src复制覆盖工程的src;另外还要使用到/zxing-1.6/android/下的PlanarYUVLuminanceSource.java。 

PS:/zxing-1.6/android/ 是BarcodeScanner的源码,本文程序相当于BarcodeScanner的精简版,只保留最基本的识别功能。

本文源码工程的下载地址如下:http://www.pudn.com/downloads349/sourcecode/comm/android/detail1521939.html

源码目录结果如下图,ChecksumException.java下面还有很多源文件,截图尚未列出:

本文例子必须要开摄像头和自动对焦的权限,不然启动时会报异常,所用的权限如下:

  1. <uses-permission android:name="android.permission.CAMERA"></uses-permission>  
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>  
  3. <uses-feature android:name="android.hardware.camera" />  
  4. <uses-feature android:name="android.hardware.camera.autofocus" />  

main.xml源码如下,main.xml必须要用到FrameLayout才能重叠控件实现“范围框”的效果:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout android:id="@+id/FrameLayout01"  
  3.     android:layout_width="fill_parent" android:layout_height="fill_parent"  
  4.     xmlns:android="http://schemas.android.com/apk/res/android">  
  5.     <SurfaceView android:layout_height="fill_parent"  
  6.         android:id="@+id/sfvCamera" android:layout_width="fill_parent"></SurfaceView>  
  7.     <RelativeLayout android:id="@+id/RelativeLayout01"  
  8.         android:layout_height="fill_parent" android:layout_width="fill_parent">  
  9.         <ImageView android:id="@+id/ImageView01"  
  10.             android:layout_height="100dip" android:layout_width="160dip"></ImageView>  
  11.         <View android:layout_centerVertical="true"  
  12.             android:layout_centerHorizontal="true" android:layout_width="300dip"  
  13.             android:background="#55FF6666" android:id="@+id/centerView"  
  14.             android:layout_height="180dip"></View>  
  15.         <TextView android:layout_centerHorizontal="true"  
  16.             android:layout_width="wrap_content" android:layout_below="@+id/centerView"  
  17.             android:layout_height="wrap_content" android:text="Scanning..."  
  18.             android:id="@+id/txtScanResult" android:textColor="#FF000000"></TextView>  
  19.     </RelativeLayout>  
  20. </FrameLayout>  

testCamera.java是主类,负责控制Camera和对图像做解码,源码如下:

  1. package com.testCamera;  
  2. import java.util.Timer;  
  3. import java.util.TimerTask;  
  4. import com.google.zxing.BinaryBitmap;  
  5. import com.google.zxing.MultiFormatReader;  
  6. import com.google.zxing.Result;  
  7. import com.google.zxing.Android.PlanarYUVLuminanceSource;  
  8. import com.google.zxing.common.HybridBinarizer;  
  9. import android.app.Activity;  
  10. import android.graphics.Bitmap;  
  11. import android.hardware.Camera;  
  12. import android.os.Bundle;  
  13. import android.view.SurfaceView;  
  14. import android.view.View;  
  15. import android.widget.ImageView;  
  16. import android.widget.TextView;  
  17. public class testCamera extends Activity {  
  18.     /** Called when the activity is first created. */  
  19.     private SurfaceView sfvCamera;  
  20.     private SFHCamera sfhCamera;  
  21.     private ImageView imgView;  
  22.     private View centerView;  
  23.     private TextView txtScanResult;  
  24.     private Timer mTimer;  
  25.     private MyTimerTask mTimerTask;  
  26.     // 按照标准HVGA   
  27.     final static int width = 480;  
  28.     final static int height = 320;  
  29.     int dstLeft, dstTop, dstWidth, dstHeight;  
  30.     @Override  
  31.     public void onCreate(Bundle savedInstanceState) {  
  32.         super.onCreate(savedInstanceState);  
  33.         setContentView(R.layout.main);  
  34.         this.setTitle("Android条码/二维码识别Demo-----hellogv");  
  35.         imgView = (ImageView) this.findViewById(R.id.ImageView01);  
  36.         centerView = (View) this.findViewById(R.id.centerView);  
  37.         sfvCamera = (SurfaceView) this.findViewById(R.id.sfvCamera);  
  38.         sfhCamera = new SFHCamera(sfvCamera.getHolder(), width, height,  
  39.                 previewCallback);  
  40.         txtScanResult=(TextView)this.findViewById(R.id.txtScanResult);  
  41.         // 初始化定时器   
  42.         mTimer = new Timer();  
  43.         mTimerTask = new MyTimerTask();  
  44.         mTimer.schedule(mTimerTask, 080);  
  45.     }  
  46.       
  47.     class MyTimerTask extends TimerTask {  
  48.         @Override  
  49.         public void run() {  
  50.             if (dstLeft == 0) {//只赋值一次   
  51.                 dstLeft = centerView.getLeft() * width  
  52.                         / getWindowManager().getDefaultDisplay().getWidth();  
  53.                 dstTop = centerView.getTop() * height  
  54.                         / getWindowManager().getDefaultDisplay().getHeight();  
  55.                 dstWidth = (centerView.getRight() - centerView.getLeft())* width  
  56.                         / getWindowManager().getDefaultDisplay().getWidth();  
  57.                 dstHeight = (centerView.getBottom() - centerView.getTop())* height  
  58.                         / getWindowManager().getDefaultDisplay().getHeight();  
  59.             }  
  60.             sfhCamera.AutoFocusAndPreviewCallback();  
  61.         }  
  62.     }  
  63.     /** 
  64.      *  自动对焦后输出图片 
  65.      */  
  66.     private Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {  
  67.         @Override  
  68.         public void onPreviewFrame(byte[] data, Camera arg1) {  
  69.             //取得指定范围的帧的数据   
  70.             PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource(  
  71.                     data, width, height, dstLeft, dstTop, dstWidth, dstHeight);  
  72.             //取得灰度图   
  73.             Bitmap mBitmap = source.renderCroppedGreyscaleBitmap();  
  74.             //显示灰度图   
  75.             imgView.setImageBitmap(mBitmap);  
  76.             BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));  
  77.             MultiFormatReader reader = new MultiFormatReader();  
  78.             try {  
  79.                 Result result = reader.decode(bitmap);  
  80.                 String strResult = "BarcodeFormat:"  
  81.                         + result.getBarcodeFormat().toString() + "  text:"  
  82.                         + result.getText();  
  83.                 txtScanResult.setText(strResult);  
  84.             } catch (Exception e) {  
  85.                 txtScanResult.setText("Scanning");  
  86.             }  
  87.         }  
  88.     };  
  89. }  

SFHCamera.java是Camera控制类,源码如下:

  1. package com.testCamera;  
  2. import java.io.IOException;  
  3. import android.graphics.PixelFormat;  
  4. import android.hardware.Camera;  
  5. import android.util.Log;  
  6. import android.view.SurfaceHolder;  
  7. public class SFHCamera implements SurfaceHolder.Callback{  
  8.     private SurfaceHolder holder = null;  
  9.     private Camera mCamera;  
  10.     private int width,height;  
  11.     private Camera.PreviewCallback previewCallback;  
  12.       
  13.     public SFHCamera(SurfaceHolder holder,int w,int h,Camera.PreviewCallback previewCallback) {  
  14.         this.holder = holder;    
  15.         this.holder.addCallback(this);    
  16.         this.holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  
  17.         width=w;  
  18.         height=h;  
  19.         this.previewCallback=previewCallback;  
  20.     }  
  21.       
  22.     @Override  
  23.     public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {  
  24.         Camera.Parameters parameters = mCamera.getParameters();    
  25.         parameters.setPreviewSize(width, height);//设置尺寸     
  26.         parameters.setPictureFormat(PixelFormat.JPEG);  
  27.         mCamera.setParameters(parameters);    
  28.         mCamera.startPreview();//开始预览   
  29.         Log.e("Camera","surfaceChanged");  
  30.     }  
  31.     @Override  
  32.     public void surfaceCreated(SurfaceHolder arg0) {  
  33.         mCamera = Camera.open();//启动服务     
  34.         try {    
  35.             mCamera.setPreviewDisplay(holder);//设置预览    
  36.             Log.e("Camera","surfaceCreated");  
  37.         } catch (IOException e) {    
  38.             mCamera.release();//释放     
  39.             mCamera = null;    
  40.         }  
  41.           
  42.     }  
  43.     @Override  
  44.     public void surfaceDestroyed(SurfaceHolder arg0) {  
  45.         mCamera.setPreviewCallback(null);  
  46.         mCamera.stopPreview();//停止预览     
  47.         mCamera = null;  
  48.         Log.e("Camera","surfaceDestroyed");  
  49.     }  
  50.     /** 
  51.      * 自动对焦并回调Camera.PreviewCallback 
  52.      */  
  53.     public void AutoFocusAndPreviewCallback()  
  54.     {  
  55.         if(mCamera!=null)  
  56.             mCamera.autoFocus(mAutoFocusCallBack);  
  57.     }  
  58.       
  59.     /** 
  60.      * 自动对焦 
  61.      */  
  62.     private Camera.AutoFocusCallback mAutoFocusCallBack = new Camera.AutoFocusCallback() {    
  63.             
  64.         @Override    
  65.         public void onAutoFocus(boolean success, Camera camera) {        
  66.             if (success) {  //对焦成功,回调Camera.PreviewCallback   
  67.                 mCamera.setOneShotPreviewCallback(previewCallback);   
  68.             }    
  69.         }    
  70.     };  
  71.       
  72.   
  73. }  

其中testCamera.java的Camera.PreviewCallback previewCallback 是整个程序的逻辑核心,作为回调函数给SFHCamera.java的内部Camera类调用。

 

查看评论
78楼 meiyulaishi428 5天前 17:06发表 [回复] [引用] [举报]
谢谢楼主!不过我下下来的源码结构和你图中的差别好大呀,能不能发一份你的源码,给我?非常非常感谢呀!!!285620308@qq.com。小女子这里先谢谢啦!!
Re: hellogv 5天前 19:35发表 [回复] [引用] [举报]
回复meiyulaishi428:下载地址还有效啊
77楼 mmxihuan2 2012-02-27 15:10发表 [回复] [引用] [举报]
你好,能不能给发一下编译好的jar包啊,谢谢! 邮箱282086648@qq.com
76楼 cold702 2012-02-17 10:49发表 [回复] [引用] [举报]
如果把public void onPreviewFrame(byte[] data, Camera arg1)里面的 data直接保存成图片格式,而不是
Bitmap mBitmap = source.renderCroppedGreyscaleBitmap()
转化成灰度bitmap 怎么实现??急!!
75楼 c0123co2009 2012-02-12 15:10发表 [回复] [引用] [举报]
能否发个源码到我的邮箱:u9851047@nkfust.edu.tw 谢谢!楼主真给力
74楼 linzeping 2012-02-07 17:32发表 [回复] [引用] [举报]
不行啊,摄像头会变形
73楼 maque0312 2012-02-05 18:57发表 [回复] [引用] [举报]
测试客户端时,在自动对焦时,一直提示autoFocus failed错误,机型是G8,请问是什么原因导致的自动对焦错误。PS:权限已经添加。
72楼 promove 2012-01-01 15:39发表 [回复] [引用] [举报]
跑不起来啊
71楼 coohcooh 2011-12-29 10:50发表 [回复] [引用] [举报]
我在真机上怎么条形码要靠左上角才能识别到,而且左上角的图像也不正常,3星P1000的
70楼 huhaohejimao 2011-12-07 23:36发表 [回复] [引用] [举报]
楼主。下载不了,能不能发一个源码到我的邮箱beijingdanei@163.com啊!谢谢了!
Re: hellogv 2011-12-20 09:23发表 [回复] [引用] [举报]
回复huhaohejimao:注册一个pudn账号吧,里面有很多很实用的代码
69楼 t313136298 2011-12-01 16:39发表 [回复] [引用] [举报]
楼主,能不能把你的源码发一份给我啊,那个源码网上我下载不了··,谢谢了 zwt101927@qq.com
68楼 xiaodongvtion 2011-12-01 11:52发表 [回复] [引用] [举报]
网上很多很好的啊。
67楼 xiaodongvtion 2011-12-01 11:52发表 [回复] [引用] [举报]
suport!
66楼 pp_liu213 2011-11-30 15:16发表 [回复] [引用] [举报]
如何直接对一张图片进行解码啊,跪了。。。。
65楼 xiao_A_and_A 2011-11-29 15:06发表 [回复] [引用] [举报]
能不能发一份源码给我,邮箱:l_huiwu@126.com
先谢谢了。
64楼 Littleqinqin 2011-11-06 23:11发表 [回复] [引用] [举报]
初步问题解决了。。。
63楼 woshihuiyuanma 2011-11-05 13:37发表 [回复] [引用] [举报]
亲爱的楼主,你的源码我下不了啊~~~能不能来个。。。liangkangchr@sina.com
62楼 rayln 2011-10-29 10:20发表 [回复] [引用] [举报]
楼主, 你有没碰过这种问题啊? 就是灰度图是90度的,不是垂直的...你知道如何把灰度图垂直么
Re: hellogv 2011-10-30 10:50发表 [回复] [引用] [举报]
回复rayln:android本身就有图像处理的类库了
61楼 aa403210842 2011-10-28 12:25发表 [回复] [引用] [举报]
PUDN 没权限下载 楼主把能发我邮箱不 很急 谢谢
60楼 wnh1226 2011-10-21 20:32发表 [回复] [引用] [举报]
http://www.pudn.com/downloads349/sourcecode/comm/android/detail1521939.html 你给的这个我没有积分啊!下载不了,能不能发一个源码到我的邮箱wnh1226@sina.com啊!谢谢了!
59楼 ya_xiaohu 2011-10-21 10:38发表 [回复] [引用] [举报]
楼主你好:我试过你的例子能运行起来,但是对焦很不准而且它既是获取到信息也不能停止,我现在再做一个项目里面有涉及到这个东西的内容,请楼主给予引导或思路,谢了,QQ1047615091或能留下你的联系方式吗?
58楼 guoke16888 2011-10-02 07:34发表 [回复] [引用] [举报]
我在电脑上加了个摄像头,但是用模拟器却总也访问不了。模拟器不能访问PC上的摄像头吗?这样的话,那调试程序多麻烦啊。还有应用在真机上跑起来了,但是卸载后重装后又进程意外终止。
57楼 xuyao28 2011-09-13 13:57发表 [回复] [引用] [举报]
UP一个。。。毕设估计要做这个。。。
56楼 wowwolfwow 2011-09-08 11:03发表 [回复] [引用] [举报]
谢谢楼主,运行起来了!
目前有两点:
1、权限要加到<Application>之外;
2、目前还不清楚什么原因导致的,
a、TimeTask中sfhCamera.AutoFocusAndPreviewCallback();
b、onPreviewFrame
均会抛出异常,估计之前那些朋友的进程终止多半因为这个;

3、SFHCamera中的onAutoFocus中mCamera也会null,导致异常。

继续学习,再次感谢!
55楼 lee2565 2011-09-05 17:00发表 [回复] [引用] [举报]
1.程序可以运行
2.翻转屏幕的时候程序会终止
3.楼主第一版没说设置权限,网上又有好多转载的,折磨了兄弟很久哇。。。。
自己慢慢加红线克。。。。
Re: hellogv 2011-09-05 23:03发表 [回复] [引用] [举报]
回复lee2565:嗯,应该说明加权限的。。。
54楼 XuyfLy 2011-08-25 14:58发表 [回复] [引用] [举报]
路过,试了一下,OK。
谢谢!
53楼 sdau_kiven 2011-08-24 11:39发表 [回复] [引用] [举报]
你好,你能给我一份BarcodeScanner的源码吗?谢谢了。。。306334678@qq.com
Re: hellogv 2011-08-24 18:36发表 [回复] [引用] [举报]
回复sdau_kiven:这个网上有。。。开源的
52楼 abren32 2011-08-22 21:15发表 [回复] [引用] [举报]
Conversion to Dalvik format failed with error 1
楼主 我出现这样的错误
51楼 jkwq1124 2011-08-13 19:17发表 [回复] [引用] [举报]
请问在真机上运行不能横屏应该再怎么修改?
Re: hellogv 2011-08-14 09:46发表 [回复] [引用] [举报]
回复jkwq1124:网络上有很多教如何改为横屏的例子
50楼 heguikun 2011-07-25 17:28发表 [回复] [引用] [举报]
那个高和宽 可以条吗?高原来是480.我调整为500时扫描不出来了
Re: hellogv 2011-07-26 09:19发表 [回复] [引用] [举报]
回复heguikun:按照比例缩放试试,拉伸的话会影响扫描结果
49楼 heguikun 2011-07-25 17:23发表 [回复] [引用] [举报]
在电脑上运行不了是吗?在手机就可以打开。楼主有没有完整一点的代码给我。307839227@qq.com
Re: hellogv 2011-07-25 19:06发表 [回复] [引用] [举报]
回复heguikun:http://www.pudn.com/downloads349/sourcecode/comm/android/detail1521939.html
再完整的话就要看zxing官方demo了
48楼 heguikun 2011-07-25 17:22发表 [回复] [引用] [举报]
也可以扫描商品那些条形码吗? 我扫描很久都没有结果呢
47楼 landuochong200 2011-07-13 19:21发表 [回复] [引用] [举报]
mTimer.schedule(mTimerTask, 0, 80); 你的间隔有点短,我的机器不行,延长时间就可以了,我改成了8000
46楼 jackinz 2011-07-08 16:46发表 [回复] [引用] [举报]
我用HTC真机跑成了。开始也意外退出过好多回,我觉得是eclipse的编译器还残留有上回错误的片断,重启几回,在模拟器上能看到黑白方块相间的预览画面,就OK了
45楼 wanglovehuang 2011-07-05 17:13发表 [回复] [引用] [举报]
楼主 我真的怀疑你自己测试成功了没有啊!!你是不是也看了
http://www.codeweblog.com/android-using-zxing-identify-the-barcode-qr-code/这个博客的
Re: super005 2011-12-20 00:05发表 [回复] [引用] [举报]
回复wanglovehuang: 朋友,请注意,你发那网站也是转载博主的。
Re: hellogv 2011-07-06 10:03发表 [回复] [引用] [举报]
回复wanglovehuang:我肯定是真机测试通过,才写出来,而且图片也是用91截图的
44楼 wanglovehuang 2011-07-05 15:27发表 [回复] [引用] [举报]
就是跑不起来!!
43楼 android168 2011-06-12 07:53发表 [回复] [引用] [举报]
官方apk版本可以正常使用,现在想熟悉一下源码去,http://code.google.com/p/zxing/ 。
42楼 hdjsoft 2011-05-23 13:25发表 [回复] [引用] [举报]
谢谢,我们这里没有几个会的啊,楼主帮帮忙!!
41楼 hdjsoft 2011-05-23 12:48发表 [回复] [引用] [举报]
楼主,如果把您的精简版加上声音和红线,另外每次扫描识别到数据后给文本框。这一块我们有个项目要用到,费用2000,帮我们实现这块功能,谢谢!我的email: 17653128@qq.com
Re: lansatiankong 2011-07-24 21:24发表 [回复] [引用] [举报]
回复hdjsoft:这个 呵呵 你还需要么,我可以做
Re: hellogv 2011-05-23 13:17发表 [回复] [引用] [举报]
回复 hdjsoft:
自己加,可以省2K,多好呢
40楼 luyaojava001 2011-05-23 08:58发表 [回复] [引用] [举报]
我刚刚用到了你写的android条形码解析并自动对焦的代码,但是解析报notFound异常,请楼主和大家帮帮忙啊 可以的话请留下您的电话
39楼 cricket1981 2011-05-22 19:56发表 [回复] [引用] [举报]
能否发个源码到我的邮箱:casel.chen@gmail.com 谢谢!
Re: hellogv 2011-05-22 20:22发表 [回复] [引用] [举报]
回复 cricket1981:
哥,代码都有了,自己建个工程自己复制黏贴吧
38楼 hdjsoft 2011-05-22 18:39发表 [回复] [引用] [举报]
不错啊,为什么没有声音和中间的红线啊
Re: hellogv 2011-05-22 20:14发表 [回复] [引用] [举报]
回复 hdjsoft:
红线那个是ZXing自带的Demo,本文的例子是精简版
37楼 OExpress 2011-05-22 16:01发表 [回复] [引用] [举报]
不错,呵呵
36楼 snail82 2011-05-07 11:23发表 [回复] [引用] [举报]
牛人啊,佩服之至
35楼 bujixiansheng 2011-04-13 13:52发表 [回复] [引用] [举报]
34楼 yiyaaixuexi 2011-03-30 23:35发表 [回复] [引用] [举报]
收了!
33楼 gaoyueguilty 2011-03-28 12:30发表 [回复] [引用] [举报]
另外,不知道需不需要修改AndroidManifest.xml,会不会是楼主忘了说AndroidManifest.xml的内容呢?
Re: LVTAOTAO21WH 2011-03-28 19:01发表 [回复] [引用] [举报]
回复 gaoyueguilty:这个文件好像不需要改吧,按照楼主的意思好像就是一个activity,是不?
Re: zxmzaofan 2011-04-22 10:13发表 [回复] [引用] [举报]
回复 LVTAOTAO21WH:
需要开启调用摄像头权限
Re: hellogv 2011-03-30 14:01发表 [回复] [引用] [举报]
回复 LVTAOTAO21WH:
要权限
Re: gaoyueguilty 2011-03-30 21:02发表 [回复] [引用] [举报]
回复 hellogv:楼主。。什么权限啊。。。可不可以直接把您源码传上来呢
Re: hellogv 2011-03-30 22:48发表 [回复] [引用] [举报]
回复 gaoyueguilty:
android.permission.CAMERA
android.hardware.camera
android.hardware.camera.autofocus
32楼 gaoyueguilty 2011-03-28 12:28发表 [回复] [引用] [举报]
我想问一下,从package com.testCamera; 看出,是不是将楼主所说的testCamera.java、SFHCamera.java2个文件放到testCamera文件夹下?而testCamera文件夹与google文件夹均在com文件夹目录下?
31楼 LVTAOTAO21WH 2011-03-27 18:44发表 [回复] [引用] [举报]
我的真机也是进程意外停止 很想知道原因
Re: lbph1 2011-03-28 10:27发表 [回复] [引用] [举报]
回复 LVTAOTAO21WH:me too
Re: gaoyueguilty 2011-03-28 12:28发表 [回复] [引用] [举报]
回复 lbph1:我用的HTC真机,版本2.1,也是意外停止 .
Re: lbph1 2011-03-28 15:01发表 [回复] [引用] [举报]
回复 gaoyueguilty:我来研究下,出结果了告诉大家哈!
30楼 qingfeng1985 2011-03-01 10:16发表 [回复] [引用] [举报]
有人知道怎样将zxing的扫码屏设为竖屏吗???
Re: zxmzaofan 2011-04-22 10:12发表 [回复] [引用] [举报]
回复 qingfeng1985:android:screenOrientation=&quot;landscape&quot; android:configChanges=&quot;orientation|keyboardHidden&quot;
Re: qingfeng1985 2011-05-04 19:15发表 [回复] [引用] [举报]
回复 zxmzaofan:Thank you very much!!!
29楼 zxmzaofan 2011-02-23 11:04发表 [回复] [引用] [举报]
我用里程碑跑不起来,一真机运行就出现进程意外停止。。。这个是怎么回事哦。。
Re: LVTAOTAO21WH 2011-03-27 18:44发表 [回复] [引用] [举报]
回复 zxmzaofan:我的真机也是进程意外停止 很想知道原因
28楼 ruozui 2011-02-20 16:20发表 [回复] [引用] [举报]
今天调试了楼主的代码.可以运行了,但是存在2个问题要请教:

1. 摄像头打开的时候速度很慢.

进入程序,屏幕出现浅红色的长方形框框,然后要等很久很久才能进入拍照的预览...大约5分钟以上.

2. 很难对焦

对焦也是对了好久,不知道什么时候突然对上了.

我的机器上也装了zxing的原版程序,没有出现上面的现象.请楼主帮忙看一下,是我哪里没有设置好吗?

手机是G2. 感谢.
Re: LVTAOTAO21WH 2011-03-30 11:36发表 [回复] [引用] [举报]
回复 ruozui:利用Handler
Re: LVTAOTAO21WH 2011-03-28 19:02发表 [回复] [引用] [举报]
回复 ruozui:我很想知道,你是按照楼主的方法没有改任何文件么?
Re: zxmzaofan 2011-02-23 11:04发表 [回复] [引用] [举报]
回复 ruozui:我用里程碑都跑不起来,一真机运行就出现进程意外停止。。。
27楼 feng88724 2011-02-10 14:51发表 [回复] [引用] [举报]
怎么不把生成一起做了~~~~
26楼 cucuchen520 2011-01-24 11:59发表 [回复] [引用] [举报]
我想问的是这东西在模拟器上面调试出错,可能是因为没有相机的原因,有没有什么解决的办法吗?
Re: hellogv 2011-01-25 20:36发表 [回复] [引用] [举报]
回复 cucuchen520:
必须真机才能跑本文的代码
25楼 fly_binbin 2011-01-04 11:37发表 [回复] [引用] [举报]
不错,学习学习!
24楼 walkman_chen 2011-01-02 12:52发表 [回复] [引用] [举报]
需要学习!
23楼 lindj_java 2011-01-02 00:27发表 [回复] [引用] [举报]
22楼 vistaxpxpxp111 2011-01-01 15:14发表 [回复] [引用] [举报]
21楼 raodoudou321 2010-12-31 11:29发表 [回复] [引用] [举报]
学习了.
20楼 dcping2008 2010-12-30 17:49发表 [回复] [引用] [举报]
如果能上传就好了,版主
Re: cucuchen 2011-01-26 17:08发表 [回复] [引用] [举报]
回复 dcping2008:
兄弟你可要看清楚了,MultiFormatReader 这个是zxing核心类,在zxing core包里面,不需要上传的吧!hellogv已经讲得很清楚了.
19楼 dcping2008 2010-12-30 17:49发表 [回复] [引用] [举报]
最关键的处理二维码的类没有上传MultiFormatReader
18楼 fate141224745 2010-12-30 16:14发表 [回复] [引用] [举报]
17楼 xingyueqi 2010-12-30 12:39发表 [回复] [引用] [举报]
我感觉ZXING的代码那么乱,怎么看不懂呢,还不如自己开发快。
16楼 pjp1029 2010-12-30 09:12发表 [回复] [引用] [举报]
15楼 httk526 2010-12-30 08:48发表 [回复] [引用] [举报]
14楼 Jeanth 2010-12-29 16:00发表 [回复] [引用] [举报]
13楼 yu444 2010-12-29 13:50发表 [回复] [引用] [举报]
12楼 BaddyBoy 2010-12-29 10:26发表 [回复] [引用] [举报]
二维码现在在日本用的真的很多,很多商品上都有,一般都寸的都是商品相关的网站的URL
11楼 seai 2010-12-29 09:55发表 [回复] [引用] [举报]
不错,关注
10楼 ria2008 2010-12-29 08:53发表 [回复] [引用] [举报]
好人啊!
9楼 hjhswat 2010-12-28 19:06发表 [回复] [引用] [举报]
8楼 teachertina 2010-12-28 13:13发表 [回复] [引用] [举报]
无话可说 只能
7楼 teachertina 2010-12-28 13:12发表 [回复] [引用] [举报]
6楼 s278777851 2010-12-28 09:47发表 [回复] [引用] [举报]
5楼 hmc1985 2010-12-28 09:23发表 [回复] [引用] [举报]
人才呀!
4楼 xuyan87101 2010-12-28 09:10发表 [回复] [引用] [举报]
呵呵……石头来也
3楼 Chen_junheng 2010-12-28 09:07发表 [回复] [引用] [举报]
gv
很不错啊
2楼 kf156 2010-12-28 09:06发表 [回复] [引用] [举报]
虫哥真给力,二维码我一直挺看好的
1楼 qwe285735942 2010-12-28 09:04发表 [回复] [引用] [举报]
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值