如题: 现在普遍流行二维码,但是条码项目中也需要用到,现在遇到一疑惑:
网上搜索Android 生成一维,代码都是如出一辙相互拷贝,测试也可以生成一维码但是和标准的(以微信/支付宝为基准)一维码生成的图片貌似有差异对比如下:
测试使用纯18位数字生成:
【图1 是使用如下算法生成的一维码,也是网上广为流传的算法】
public static Bitmap toBitmap(BitMatrix byteMatrix)
{
// 定义位图的宽和高
int width = byteMatrix.getWidth();
int height = byteMatrix.getHeight();
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if (byteMatrix.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;
}
/*********************************************************************/
【图2 是使用一个叫“Barcode Generator” 的软件生成的 】
相比之下 图一生成的条码 竖线 要比图2(37条黑色竖线)多的多,在网上我使用在线生成条码也是生成37条黑色竖线,查看支付宝微信生成的条码也是37条竖线,所以图一生成的算法我觉得不妥,还请大神指导 生成图二的条码算法 不胜感激谢谢!
------解决思路----------------------
jar包,前不久从github下载源码弄的
http://download.csdn.net/detail/inquisitive_plus/8441063
例子已经发送了