本文轉自夏神:http://blog.csdn.net/xiaanming/article/details/10163203
一、用什麼
二維碼掃描用的google的開源架構Zxing。
二、下載下傳
位址:http://code.google.com/p/zxing/。
http://download.csdn.net/download/xiaanming/5990219
三、怎麼用
記得要加相機權限。
1、拷貝三個包到自己項目中,并将相關資源引入:com.mining.app.zxing.camera,com.mining.app.zxing.decoding,com.mining.app.zxing.view。
2、導入Zxing.jar包。
3、引入類:MipcaActivityCapture。這個activity主要處理掃描界面的類,比如掃描成功有聲音和震動等等,主要關注裡面的handleDecode(Result result, Bitmap barcode)。掃描完成之後将掃描到的結果和二維碼的bitmap當作參數傳遞到handleDecode(Result result, Bitmap barcode),隻需在這兒寫出相對應的處理代碼即可。
4、自定義效果
1)更改掃描框的大小:在CameraManager類裡的getFramingRect()。我自己更改後的一個:
public Rect getFramingRect() {
Point screenResolution = configManager.getScreenResolution();
if (framingRect == null) {
if (camera == null) {
return null;
}
int width = screenResolution.x;
int height = screenResolution.y * 1 / 2;
int leftOffset = (screenResolution.x - width) / 2;
int topOffset = (screenResolution.y - height) / 2;
framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height);
Log.d(TAG, "Calculated framing rect: " + framingRect);
}
return framingRect;
}
2)更改掃描框的樣式:在ViewFinderView類中修改。
更改掃描框大小後,更改掃描框下方的文字位置,使得其居中顯示:
paint.setTextAlign(Align.CENTER);
canvas.drawText(getResources().getString(R.string.scan_text), width/2, (float) (frame.bottom + (float)TEXT_PADDING_TOP *density), paint);
四、需要掃描本地圖檔
本機掃描本機圖檔,參考夏神:http://blog.csdn.net/xiaanming/article/details/14450809
五、遇到的問題
raw檔案夾送出不了svn,錯誤提示是:
我怎麼解決的:删了raw檔案夾,然後再重新建立,再将該檔案夾下東西拷貝進來,再次送出svn。