Android -条形码的生成

主要思路
  • 1.导入Zxing包,根据架包MultiFormatWriter类 ,将字符串宽高,计算出一定时间内x,y偏移量 生成对应的黑白图片。
1.客户端代码
Button generateQRCodeButton = (Button) this
          .findViewById(R.id.btn_add_qrcode);
 generateQRCodeButton.setOnClickListener(new OnClickListener(){
    @Override
   public void onClick(View view) {
           String contentString = qrStrEditText.getText().toString();
           if (!contentString.equals("")) {
                // 根据字符串生成条形码图片并显示在界面上,第二个参数为图片的大小(350*350)
                Bitmap qrCodeBitmap=null;
                qrCodeBitmap= BarcodeCreater.creatBarcode(contentString, 120, 60);
                bg.setImageBitmap(qrCodeBitmap); 
            } else {
               Toast.makeText(MainActivity.this, "Text can not be empty", Toast.LENGTH_SHORT.show();
           }
    }
2.条形码生成代码
private static final int BLACK = 0xff000000;
private static final int WHITE = 0xFFFFFFFF; 
private static BarcodeFormat barcodeFormat= BarcodeFormat.CODE_128;
public  static Bitmap creatBarcode(String contents, int desiredWidth,int desiredHeight) {
      MultiFormatWriter writer = new MultiFormatWriter();
    BitMatrix result=null;
        try {
              result = writer.encode(contents, barcodeFormat, desiredWidth,
                      desiredHeight);
        } catch (WriterException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
        }
            int width = result.getWidth();
          int height = result.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] = result.get(x, y) ? BLACK : WHITE;
              }
          }
          Bitmap bitmap = Bitmap.createBitmap(width, height,
                  Bitmap.Config.ARGB_8888);
          bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
          return bitmap;
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 摘要 最近,公司业务上有个生成二维码图片的需求(Android端),之后笔者在网上查阅了一些资料,实现了这个功能。...
    梦想编织者灬小楠阅读 45,850评论 37 132
  • ZXing应用详解 现在的项目中需要加上二维码扫描,虽然使用了第三方库,也还好用,但是对这部分只是还是比较感兴趣,...
    MycroftWong阅读 52,544评论 11 45
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,589评论 25 708
  • “把电视关上去洗澡吧,你已经看了一小时的动画片啦”我语重心长的说。 “不要,我还要看,我就不洗澡”女儿撇着嘴说。 ...
    茜开始贵坚持阅读 418评论 2 2
  • 文/邓荣 “你们还在吗?”我问灵魂伙伴们。而不是像过去单一的问:“怎么又没能量了?” 突然身体有了感觉就起身走去把...
    邓荣阅读 443评论 0 0