BitmapUtil.java里面添加个方法
/** * 用于将给定的内容生成成一维码 注:目前生成内容为中文的话将直接报错,要修改底层jar包的内容 * * @param content 将要生成一维码的内容 * @return 返回生成好的一维码bitmap * @throws WriterException WriterException异常 */ public static Bitmap CreateOneDCode(String content) throws WriterException { // 生成一维条码,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败 BitMatrix matrix = new MultiFormatWriter().encode(content, BarcodeFormat.CODE_128, 500, 200); int width = matrix.getWidth(); int height = matrix.getHeight(); int[] pixels = new int[width * height]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (matrix.get(x, y)) { pixels[y * width + x] = 0xff000000; } } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // 通过像素数组生成bitmap,具体参考api bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; }
MainActivity.java里面监听
button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //得到输入框的值 String trim = editText.getText().toString().trim(); Bitmap bitmap; try { //生成一维码 bitmap = BitmapUtil.CreateOneDCode(trim); if(bitmap != null){ //给image赋值 imageView.setImageBitmap(bitmap); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } });
时间: 2024-10-08 02:58:02