2012-07-04 53 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嘗試他們提供的示例應用程序。這將爲您提供指導。 –