android:BarcodeFormat.CODE_128不显示文字

时间:2014-02-03 05:13:09

标签: android barcode zxing encode code128

我使用ZXing Library制作条形码生成器但是当条形码生成时它不会显示条形码下方的文本

enter image description here

所以请为我建议如何使用 TEXT 生成BARCODE CODE_128 的解决方案 这是我的代码:

try {

        Map<EncodeHintType, Object> hints = null;
        hints = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);
        hints.put(EncodeHintType.CHARACTER_SET, "ABC-abc-1234");

        BitMatrix bitMatrix = new Code128Writer().encode("ABC-abc-1234", BarcodeFormat.CODE_128, 350, 150, hints);

        int width = bitMatrix.getWidth();
        int height = bitMatrix.getHeight();
        int[] pixels = new int[width * height];
        // All are 0, or black, by default
        for (int y = 0; y < height; y++) {
            int offset = y * width;
            for (int x = 0; x < width; x++) {
                pixels[offset + x] = bitMatrix.get(x, y) ? Color.BLACK : Color.WHITE;
            }
        }

        Bitmap bitmap = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
        mImageView.setImageBitmap(bitmap);
    } catch (Exception e) {
        // TODO: handle exception
    }

3 个答案:

答案 0 :(得分:1)

编码器不会在图像中添加任何其他文本。其目的是仅生成条形码。你必须将它添加到其他地方。

答案 1 :(得分:0)

对于仍在寻找问题解决方案的任何人。一种可能的方法是为条形码创建一个位图图像,为条形码下方的信息创建另一个。然后,您可以组合/叠加,也可以根据需要将两个位图合并为一个并打印组合的位图!经过Brother LQ-720NW的测试,一切正常! :)

答案 2 :(得分:-1)

替换为以下内容:

BitMatrix bitMatrix = new Code128Writer().write( "ABC-abc-1234",
                                                 BarcodeFormat.CODE_128,
                                                 350,
                                                 150,
                                                 hints
                                                 );