从github找到了一个开源的项目(才疏学浅,不知道这个项目是什么开源协议): https://github.com/coolbong/android-barcode
这是项目中MainActivity中的关键代码。我不需要Code128,我需要的是EAN13。
private void drawBarcode() {
String barcode = "7761010114033430";
Code128 code = new Code128(this);
code.setData(barcode);
Bitmap bitmap = code.getBitmap(680, 300);
ImageView ivBarcode = (ImageView)findViewById(R.id.code128_barcode);
ivBarcode.setImageBitmap(bitmap);
}
修改为:
private void drawBarcode() {
/*String barcode = "7761010114033430";
Code128 code = new Code128(this);*/
String barcode="7200000018392";
EAN13 code=new EAN13();
code.setData(barcode);
Bitmap bitmap = code.getBitmap(680, 300);
ImageView ivBarcode = (ImageView)findViewById(R.id.code128_barcode);
ivBarcode.setImageBitmap(bitmap);
}
按提示导入:
import com.coolbong.barcodegenerator.model.EAN13;
运行效果:
解码试了一下,确实是EAN13,但是还是不是我想要的,我想要的是 开始符、中间符、结束符 长,其余的短,而且在下方显示 文字信息。
修改EAN13类,增加一个 _textHeight,当 _textHeight 大于 0 时 开始符、中间符、结束符 之外的变短 1.5 倍 _textHeight,并在下方输出 EAN13 的文本。
EAN13编码后为95个二进制,第 0、2、46、48、92、94为 开始符、中间符、结束符 对应的二进制。