android 生成条码图片 demo
时间: 2023-10-22 09:07:51 浏览: 140
以下是 Android 生成条码图片的 demo 代码,您可以参考一下:
```java
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private ImageView mBarcodeImageView;
private final String mBarcodeContent = "https://www.example.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBarcodeImageView = findViewById(R.id.barcode_image_view);
// 生成条码图片
Bitmap barcodeBitmap = generateBarcodeBitmap(mBarcodeContent, BarcodeFormat.CODE_128);
// 将生成的条码图片显示在 ImageView 上
mBarcodeImageView.setImageBitmap(barcodeBitmap);
}
/**
* 根据指定内容和条码格式生成条码图片
*
* @param content 条码内容
* @param format 条码格式
* @return 条码图片
*/
private Bitmap generateBarcodeBitmap(String content, BarcodeFormat format) {
// 定义条码图片的宽度和高度
final int barcodeWidth = 800;
final int barcodeHeight = 400;
try {
// 设置条码的编码类型和内容
Map<EncodeHintType, Object> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix matrix = new QRCodeWriter().encode(content, format, barcodeWidth, barcodeHeight, hints);
// 根据 BitMatrix 生成条码图片
int width = matrix.getWidth();
int height = matrix.getHeight();
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
int offset = y * width;
for (int x = 0; x < width; x++) {
pixels[offset + x] = matrix.get(x, y) ? Color.BLACK : Color.WHITE;
}
}
Bitmap barcodeBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
barcodeBitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return barcodeBitmap;
} catch (WriterException e) {
e.printStackTrace();
}
return null;
}
}
```
这个 demo 使用了 Google 的 ZXing 库来生成条码图片,其中 `generateBarcodeBitmap()` 方法就是生成条码图片的核心代码。在这个方法中,我们首先指定了条码图片的宽度和高度,然后根据指定的内容和条码格式(这里使用的是 CODE_128 格式)生成 BitMatrix,最后将 BitMatrix 转换成 Bitmap。
阅读全文