X-Git-Url: http://git.rot13.org/?p=zxing.git;a=blobdiff_plain;f=android%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Fclient%2Fandroid%2FCaptureActivity.java;h=02437ea9a20ed6dfe650204fefc4efc95cdcdf2e;hp=687be895583245205fbc4568f8e01bae36068e8c;hb=118cc9f113634f4d6227e7ccc2ec6137c52999af;hpb=af4057be35cd5e29872498541761dc11799a121e diff --git a/android/src/com/google/zxing/client/android/CaptureActivity.java b/android/src/com/google/zxing/client/android/CaptureActivity.java index 687be895..02437ea9 100755 --- a/android/src/com/google/zxing/client/android/CaptureActivity.java +++ b/android/src/com/google/zxing/client/android/CaptureActivity.java @@ -506,8 +506,13 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal paint.setColor(getResources().getColor(R.color.result_points)); if (points.length == 2) { paint.setStrokeWidth(4.0f); - canvas.drawLine(points[0].getX(), points[0].getY(), points[1].getX(), - points[1].getY(), paint); + drawLine(canvas, paint, points[0], points[1]); + } else if (points.length == 4 && + (rawResult.getBarcodeFormat().equals(BarcodeFormat.UPC_A)) || + (rawResult.getBarcodeFormat().equals(BarcodeFormat.EAN_13))) { + // Hacky special case -- draw two lines, for the barcode and metadata + drawLine(canvas, paint, points[0], points[1]); + drawLine(canvas, paint, points[2], points[3]); } else { paint.setStrokeWidth(10.0f); for (ResultPoint point : points) { @@ -517,6 +522,10 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal } } + private static void drawLine(Canvas canvas, Paint paint, ResultPoint a, ResultPoint b) { + canvas.drawLine(a.getX(), a.getY(), b.getX(), b.getY(), paint); + } + // Put up our own UI for how to handle the decoded contents. private void handleDecodeInternally(Result rawResult, Bitmap barcode) { statusView.setVisibility(View.GONE);