`
rensanning
  • 浏览: 3548132 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38136
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607280
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682281
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89329
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401828
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69686
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91696
社区版块
存档分类
最新评论

Android生成和扫描二维码之ZXing

 
阅读更多
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
分享到:
评论
1 楼 suntukang 2015-03-02  
你好,扫描二维码的代码要放在哪里?

相关推荐

    android 二维码扫描Zxing

    在Android开发中,二维码扫描是一项常见的功能,用于读取和生成包含信息的二维条形码。ZXing(Zebra Crossing)是Google开发的一个开源项目,它提供了跨平台的二维码和条形码处理库。本文将详细介绍如何在Android...

    Android zxing生成 扫描二维码(依赖形式)

    本篇文章将详细介绍如何在Android项目中使用ZXing库来生成和扫描二维码,并以依赖形式引入。 **一、添加ZXing依赖** 首先,你需要在项目的build.gradle模块文件中添加ZXing的相关依赖。ZXing库通常通过Gradle插件...

    Android使用Zxing库识别多个二维码

    Android使用Zxing库识别多个二维码

    Android zxing二维码扫描 从相册选择二维码识别

    然后,创建一个扫描二维码的Activity或者Fragment。ZXing库提供了一个CaptureActivity,但通常我们会自定义一个,以适应应用的UI和交互需求。在自定义的扫描界面中,你需要创建一个SurfaceView来显示相机预览,并在...

    扫描二维码(zxing)

    然后,创建一个用于扫描二维码的Activity。首先,需要在布局文件中添加一个SurfaceView,这是ZXing库用于捕获摄像头画面的组件。例如,你的activity_scan.xml布局文件可以这样编写: ```xml &lt;RelativeLayout xmlns:...

    android扫描二维码及zxing框架lib

    在Android开发中,二维码扫描是一项常见的功能,ZXing(Zebra Crossing)库是业界广泛使用的开源项目,专门用于处理一维条形码和二维条形码,包括二维码的生成与扫描。本篇将深入探讨ZXing框架在Android中的应用以及...

    xamarin android使用zxing扫描二维码例子

    在Xamarin Android开发中,有时候我们需要集成二维码扫描功能,这时候就可以利用ZXing.Net.Mobile这个库。ZXing(Zebra Crossing)是一个开源项目,提供多种平台上的条形码和二维码读取与生成。在Xamarin环境中,...

    android二维码开发 ZXing(中文乱码已处理)

    在Android平台上进行二维码开发时,ZXing(Zebra Crossing)是一个非常流行的开源库,它提供了多种条码和二维码的读取与生成功能。本项目针对ZXing进行了优化,特别是解决了中文乱码的问题,使得开发者在处理包含...

    一键生成二维码 扫描二维码 Zxing包JAR包

    二维码技术在现代社会中被广泛应用,无论是线上支付、信息分享还是广告推广,都离不开它的身影。Zxing(ZXing,读作“zebra ...通过深入理解和实践,开发者可以轻松地利用Zxing实现一键生成和扫描二维码的功能。

    Android使用ZXing实现二维码扫描和生成二维码

    Android使用ZXing实现二维码扫描和生成二维码 可打开默认二维码扫描页面 支持对图片Bitmap的扫描功能 支持对UI的定制化操作 支持对条形码的扫描功能 支持生成二维码操作 支持控制闪光灯开关

    android(zxing)全屏二维码识别,全屏扫描二维码,近距离扫描二维码,图片识别二维码

    本文将详细解析如何使用ZXing库来实现这一功能,并结合全屏扫描和近距离扫描二维码,以及图片识别二维码的技术要点。 首先,ZXing(Zebra Crossing)是一个开源的条码图像处理库,它支持多种格式的编码和解码,包括...

    Android生成和扫描二维码

    在Android平台上,生成和扫描二维码是一项常见的功能,广泛应用于数据传输、链接分享、电子票务等领域。ZXing(Zebra Crossing)是一个开源的二维码和条形码处理库,它为Android提供了强大的二维码生成和扫描能力。...

    Android中生成二维码、扫描二维码

    总结,生成和扫描二维码在Android应用中是一项基本操作,通过引入第三方库,如ZXing或ZXingLite,可以轻松实现这一功能。开发者需要关注的是权限管理、界面设计以及扫描结果的处理。在实际开发中,还可以结合其他...

    Android zxing二维码扫描个人优化版

    【Android Zxing二维码扫描个人优化版】是一款专为Android平台设计的二维码扫描工具,基于开源项目ZXing(Zebra Crossing)进行二次开发和优化。ZXing是一个强大的、开放源码的多格式一维和二维条码图像处理库,支持...

    Android ZXing二维码——集成本地图片扫描、图片浏览器、相机扫描二维码、生成二维码

    本文将深入探讨如何在Android应用中集成ZXing二维码功能,包括本地图片扫描、图片浏览器和相机扫描二维码,以及如何生成二维码。 首先,我们需要在项目中添加ZXing的依赖。通常,我们可以通过Gradle来导入ZXing的...

    Android二维码实现扫描生成

    要实现在Android应用中扫描二维码,首先需要集成ZXing库。这可以通过添加ZXing的AAR依赖到项目的build.gradle文件中,或者将ZXing的源码导入项目。依赖添加后,可以创建一个扫描界面,通常是一个SurfaceView,用于...

    Android Zxing竖屏扫描二维码

    【Android Zxing竖屏扫描二维码】是Android平台上实现二维码快速、精准扫描的一种技术应用。Zxing,全称为“ZXing(”zebra crossing“的缩写,斑马线)”,是一个开源的、跨平台的条码扫描库。在Android开发中,...

    Android 扫描二维码、生成二维码(Google Zxing)

    在Android平台上,开发一款能够扫描二维码和生成二维码的应用是一项常见的任务。这个项目使用了Google的Zxing库,它是一个开源的二维码和条形码处理库,功能强大且易于集成。以下将详细介绍如何利用Zxing实现二维码...

    Android 扫描二维码,类似微信的不断放大扫描效果, 识别率高。

    总的来说,实现"Android 扫描二维码,类似微信的不断放大扫描效果,识别率高"的功能,需要深入理解Android的相机API、图像处理和Zxing库的使用。通过合理的界面设计和功能优化,我们可以创建出用户友好、性能优秀的...

Global site tag (gtag.js) - Google Analytics