ZXing是一个开源的条码生成和扫描库。它不但支持众多的条码格式,而且有各种语言的实现版本,它支持的语言包括:Java、 C++、 C#、 Objective-C、ActionScript以及Ruby。
http://code.google.com/p/zxing/downloads/list
版本:ZXing-2.3.0
(1)把ZXing的以下两个jar包放入android工程的libs下
引用
core/core.jar
javase/javase.jar
(2)生成二维码
public class QRCodeGenerateActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qrcode_generate);
Button button = (Button) findViewById(R.id.generate_button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText editText = (EditText) findViewById(R.id.code_content);
Bitmap qrcode = generateQRCode(editText.getText().toString());
ImageView imageView = (ImageView) findViewById(R.id.code_image);
imageView.setImageBitmap(qrcode);
}
});
}
private Bitmap bitMatrix2Bitmap(BitMatrix matrix) {
int w = matrix.getWidth();
int h = matrix.getHeight();
int[] rawData = new int[w * h];
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
int color = Color.WHITE;
if (matrix.get(i, j)) {
color = Color.BLACK;
}
rawData[i + (j * w)] = color;
}
}
Bitmap bitmap = Bitmap.createBitmap(w, h, Config.RGB_565);
bitmap.setPixels(rawData, 0, w, 0, 0, w, h);
return bitmap;
}
private Bitmap generateQRCode(String content) {
try {
QRCodeWriter writer = new QRCodeWriter();
// MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix matrix = writer.encode(content, BarcodeFormat.QR_CODE, 500, 500);
return bitMatrix2Bitmap(matrix);
} catch (WriterException e) {
e.printStackTrace();
}
return null;
}
}
(3)扫描二维码
private PreviewCallback mPreviewCallback = new PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
int previewWidth = camera.getParameters().getPreviewSize().width;
int previewHeight = camera.getParameters().getPreviewSize().height;
PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource(
data, previewWidth, previewHeight, 0, 0, previewWidth,
previewHeight, false);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Reader reader = new QRCodeReader();
// Reader reader = new MultiFormatReader();
try {
Result result = reader.decode(bitmap);
String text = result.getText();
Intent intent = new Intent();
intent.setData(Uri.parse(text));
setResult(RESULT_OK, intent);
finish();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Not Found", Toast.LENGTH_SHORT).show();
}
}
};
- 大小: 81.3 KB
- 大小: 60.5 KB
分享到:
相关推荐
zxing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的接口;可以实现使用手机的内置的摄像头完成条形码和二维码的扫描与解码;也可以实现条形码和二维码的编码与解码。
Android生成和扫描二维码
zxing 实现二维码扫描 从相册获取二维码识别,部分机型有存储权限需自己做一下处理,闪光灯,以及集成了zxing的库,可自己直接引用生成等操作,
Android使用ZXing实现二维码扫描和生成二维码 可打开默认二维码扫描页面 支持对图片Bitmap的扫描功能 支持对UI的定制化操作 支持对条形码的扫描功能 支持生成二维码操作 支持控制闪光灯开关
集成 zxing 第三方 扫描二维码及生成二维码 eclipse版
Android使用zxing扫描和生成二维码,ZXing代码库为最新版本3.2.1,附件含工程代码和apk示例安装文件。
Android zxing生成 扫描二维码(依赖形式)
Android zxing生成 扫描二维码(含有源码lib)
这个是在github上下载的zxing,简化后的zxing,只有生成和扫描二维码
本sample是android系统使用zxing进行条形码、二维码编解码处理的范例,是google提供范例的精简版本,仅保留扫码及二维码生成。本精简版本来源于网络,只是替换zxing的核心库到最新版,并增加了一些注释。 zxing简介 ...
我在网上看了一些扫本地图片的,感觉灵敏度不是很好,一些截图中含有二维码缺扫不出来,相机扫描二维码我是模仿新浪微博把界面写的。
通过文本生成二维码以及扫描二维码功能,android开发继承zxing详解代码
使用的是zxing的框架,实现二维码的扫描和生成等功能,你也可以试试哟
android二维码开发,使用google的zxing开发包,由通讯录生成扫描二维码名片,项目源代码。关于通讯录和二维码在android手机上的结合。
zxing的引用和实现二维码扫描功能
条形码扫描、二维码生成扫描,使用ZXing
通过Paint画笔自己绘制了二维码扫描框、仿微信扫面二维码、界面更加美观
QrScan Library, Support QrScan, Create QrScan, Using Zxing Library(二维码扫描库,支持二维码扫描和生成二维码,使用了Zxing库来支持二维码扫描)
此demo基于goole Zxing开源项目实现目前非常常用的二维码扫描功能,同时实现了生成二维码功能;