1. 程式人生 > >android ZXing掃描 返回崩潰問題,影象拉伸

android ZXing掃描 返回崩潰問題,影象拉伸

近日使用了ZXing掃描框架,初次使用,還算上手,直接專案中運用。只是遇到兩個問題,稍微常見的。
一是影象拉伸;
二是掃描完成後返回時閃退(傳輸大Bitmap物件導致閃退,改為Byte陣列或者不傳遞Bitmap);
基於這兩點,網友提出方案:
http://blog.csdn.net/wangshihui512/article/details/50827702(文章連結)

改動一:
CameraConfigurationManager檔案
findBestPreviewSizeValue方法下邊這句
int newDiff = Math.abs(newX - screenResolution.x) + Math.abs(newY - screenResolution.y);
改為
int newDiff=Math.abs(newY - screenResolution.x) + Math.abs(newX - screenResolution.y);
原文那樣計算是因為計算的是橫屏掃描的解析度

這樣改動後發現掃描不拉伸了,但是沒有掃描結果,掃描結果返回的介面一閃而退,是因為Activity之間傳遞了大的Bitmap

改動二:
MipcaActivityCapture檔案
handleDecode方法中將Bitmap轉為Byte陣列然後再在Activity之間傳遞或者不傳遞Bitmap
Intent resultIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putString(“result”, resultString);
// bundle.putParcelable(“bitmap”, barcode);
// ByteArrayOutputStream baos=new ByteArrayOutputStream();
// barcode.compress(Bitmap.CompressFormat.PNG, 100, baos);
// byte [] bitmapByte =baos.toByteArray();
// bundle.putByteArray(“bitmap”,bitmapByte);
resultIntent.putExtras(bundle);
this.setResult(RESULT_OK, resultIntent);
經過這兩處改動,就可以完美使用二維碼了