2012-07-04 158 views
0

我是android新手。我试图开发一款条形码扫描器,其工作原理如下: 通过相机拍摄(条形码)图像并扫描此条形码图像。 我的问题是我如何做到这一点? 在此先感谢条码图像扫描仪

这里是我的代码:

TextView result_text; 
Button scan_btn; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    result_text = (TextView)findViewById(R.id.Result_tv); 

    scan_btn = (Button)findViewById(R.id.Barcode_Scan_Button); 
    scan_btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent scanIntent= new Intent("com.google.zxing.client.android.SCAN"); 
      scanIntent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 

      startActivityForResult(scanIntent, 0); 

     } 
    }); 
} 

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 

     if (requestCode == 0) { 


      if (resultCode == RESULT_OK) { 

      result_text.setText(intent.getStringExtra("SCAN_RESULT")); 

      } else if (resultCode == RESULT_CANCELED) { 

      result_text.setText("Scan cancelled."); 

      } 

     } 

     } 

    } 

回答

2

研究http://code.google.com/p/zxing/

无论如何,这个问题是相当复杂的,这是使用fouriers,边缘检测,矩阵计算等。另外还有IIRC完成有很多标准。准备一个月的工作。

4

@Zain你正在服用的是严格不建议的办法。

按照他们的指导原则,您不应该明确地调用扫描意图。

您必须使用zxing发布的新类IntentIntegrator类。

在这里你去

首先添加代码来调用意图:从以下网址

IntentIntegrator integrator = new IntentIntegrator(yourActivity); 
integrator.initiateScan(); 

下载IntentIntegrator类。

http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.java

其次,这种添加到您的活动来处理结果:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (scanResult != null) { 
    // handle scan result 
    } 
    // else continue with any other code you need in the method 
    ... 
} 

投资你的时间去通过Zxing.They的wiki页面都非常漂亮解释它。

http://code.google.com/p/zxing/w/list

http://code.google.com/p/zxing/wiki/ScanningViaIntent

下面是示例应用程序演示如何调用斑马线意图。

http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java

最后测试项目+图书馆位于

http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid-integration%253Fstate%253Dclosed

+0

我感到困惑如何获取摄像机图像,并把它传递给扫描仪扫描... – zain

+0

IntentIntegrator积分=新IntentIntegrator (yourActivity); integrator.initiateScan(); 我已经打电话给onCreate,当我尝试用我的avtivity类名称替换yourActivity时,出现错误。 – zain

+0

@Zain尝试他们提供的示例应用程序。这将为您提供指导。 –