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
分享到:
相关推荐
在Android开发中,二维码扫描是一项常见的功能,用于读取和生成包含信息的二维条形码。ZXing(Zebra Crossing)是Google开发的一个开源项目,它提供了跨平台的二维码和条形码处理库。本文将详细介绍如何在Android...
在Xamarin Android开发中,有时候我们需要集成二维码扫描功能,这时候就可以利用ZXing.Net.Mobile这个库。ZXing(Zebra Crossing)是一个开源项目,提供多种平台上的条形码和二维码读取与生成。在Xamarin环境中,...
本篇文章将详细介绍如何在Android项目中使用ZXing库来生成和扫描二维码,并以依赖形式引入。 **一、添加ZXing依赖** 首先,你需要在项目的build.gradle模块文件中添加ZXing的相关依赖。ZXing库通常通过Gradle插件...
Android使用Zxing库识别多个二维码
然后,创建一个扫描二维码的Activity或者Fragment。ZXing库提供了一个CaptureActivity,但通常我们会自定义一个,以适应应用的UI和交互需求。在自定义的扫描界面中,你需要创建一个SurfaceView来显示相机预览,并在...
然后,创建一个用于扫描二维码的Activity。首先,需要在布局文件中添加一个SurfaceView,这是ZXing库用于捕获摄像头画面的组件。例如,你的activity_scan.xml布局文件可以这样编写: ```xml <RelativeLayout xmlns:...
在Android开发中,二维码扫描是一项常见的功能,ZXing(Zebra Crossing)库是业界广泛使用的开源项目,专门用于处理一维条形码和二维条形码,包括二维码的生成与扫描。本篇将深入探讨ZXing框架在Android中的应用以及...
在Android平台上进行二维码开发时,ZXing(Zebra Crossing)是一个非常流行的开源库,它提供了多种条码和二维码的读取与生成功能。本项目针对ZXing进行了优化,特别是解决了中文乱码的问题,使得开发者在处理包含...
二维码技术在现代社会中被广泛应用,无论是线上支付、信息分享还是广告推广,都离不开它的身影。Zxing(ZXing,读作“zebra ...通过深入理解和实践,开发者可以轻松地利用Zxing实现一键生成和扫描二维码的功能。
Android使用ZXing实现二维码扫描和生成二维码 可打开默认二维码扫描页面 支持对图片Bitmap的扫描功能 支持对UI的定制化操作 支持对条形码的扫描功能 支持生成二维码操作 支持控制闪光灯开关
本文将详细解析如何使用ZXing库来实现这一功能,并结合全屏扫描和近距离扫描二维码,以及图片识别二维码的技术要点。 首先,ZXing(Zebra Crossing)是一个开源的条码图像处理库,它支持多种格式的编码和解码,包括...
在Android平台上,生成和扫描二维码是一项常见的功能,广泛应用于数据传输、链接分享、电子票务等领域。ZXing(Zebra Crossing)是一个开源的二维码和条形码处理库,它为Android提供了强大的二维码生成和扫描能力。...
总结,生成和扫描二维码在Android应用中是一项基本操作,通过引入第三方库,如ZXing或ZXingLite,可以轻松实现这一功能。开发者需要关注的是权限管理、界面设计以及扫描结果的处理。在实际开发中,还可以结合其他...
在Android平台上进行条形码和二维码的识别与生成,ZXing库是一个不可或缺的工具。ZXing,全称为“Zebra Crossing”,是一个开源项目,提供了多种平台的条码处理能力,包括读取、生成以及解析。在Android应用开发中,...
【Android Zxing二维码扫描个人优化版】是一款专为Android平台设计的二维码扫描工具,基于开源项目ZXing(Zebra Crossing)进行二次开发和优化。ZXing是一个强大的、开放源码的多格式一维和二维条码图像处理库,支持...
本文将深入探讨如何在Android应用中集成ZXing二维码功能,包括本地图片扫描、图片浏览器和相机扫描二维码,以及如何生成二维码。 首先,我们需要在项目中添加ZXing的依赖。通常,我们可以通过Gradle来导入ZXing的...
要实现在Android应用中扫描二维码,首先需要集成ZXing库。这可以通过添加ZXing的AAR依赖到项目的build.gradle文件中,或者将ZXing的源码导入项目。依赖添加后,可以创建一个扫描界面,通常是一个SurfaceView,用于...
【Android Zxing竖屏扫描二维码】是Android平台上实现二维码快速、精准扫描的一种技术应用。Zxing,全称为“ZXing(”zebra crossing“的缩写,斑马线)”,是一个开源的、跨平台的条码扫描库。在Android开发中,...
在Android平台上,开发一款能够扫描二维码和生成二维码的应用是一项常见的任务。这个项目使用了Google的Zxing库,它是一个开源的二维码和条形码处理库,功能强大且易于集成。以下将详细介绍如何利用Zxing实现二维码...