Android Zxing 扫描的简单的demo

Android ZXing二维码、条形码的生成,扫一扫demo 目录 导语 一、ZXing简介 二、ZXing方法类源码 BarcodeFormat:条形码格式类 EncodeHintType:编码显示风格 三、ZXing使用实战小案例 生成二维码 生成条形码 四、二维码扫一扫 导语 自从微信、支付宝推出扫一扫功能后,条形码、二维码的使用场景越来越丰富,扫码使用场景: 信息获取(名片、地图、WIFI密码、资料) 网站跳转(跳转到微博... 阅读详情

总体的步骤:

1: 首先导入相关的项目

2: demo是两个activity,从MainActivity跳转到ScanActivity,然后将从ScanActivity里面获取的传给MainActivity

3: 考虑可能需要打开闪光灯,添加一个切换闪光灯的,按钮,并且添加一个闪光灯的判断boolean



1: 需要导入的zxing的相关的

compile 'com.journeyapps:zxing-android-embedded:3.3.0'
    compile 'com.google.zxing:core:3.2.1'


2: MainActivity:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /**
     * 点击跳转
     * 设置方向不锁住
     * 跳转的activity
     * @param view
     */
    public void jumpToScan(View view) {
        new IntentIntegrator(this)
                .setOrientationLocked(false)
                .setCaptureActivity(ScanActivity.class)
                .initiateScan();
    }

    /**
     * 从返回的信息里面找到扫描到的条码
     * @param requestCode
     * @param resultCode
     * @param data
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //通过IntentIntegrator.parseActivityResult 来获取结果
        IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if(intentResult!=null){
            //获取扫描到的数据
            String contents = intentResult.getContents();
            Toast.makeText(this,"扫描到:"+contents,Toast.LENGTH_LONG).show();
        }

    }
}


activate_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.kodulf.myzxingdemo.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="jumpToScan"
        android:onClick="jumpToScan"
        app:layout_constraintBottom_toBottomOf="@+id/activity_main"
        app:layout_constraintLeft_toLeftOf="@+id/activity_main"
        app:layout_constraintRight_toRightOf="@+id/activity_main"
        app:layout_constraintTop_toTopOf="@+id/activity_main" />

</android.support.constraint.ConstraintLayout>



ScanActivity:

import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.journeyapps.barcodescanner.CaptureManager;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;

public class ScanActivity extends AppCompatActivity implements DecoratedBarcodeView.TorchListener {

    /**
     * 截图管理
     */
    private CaptureManager captureManager;
    /**
     * 扫描的view
     */
    private DecoratedBarcodeView barcodeView;
    /**
     * 当前闪光灯是否打开了
     */
    private boolean isTorchOn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_scan);

        barcodeView = (DecoratedBarcodeView)findViewById(R.id.barcodeView);

        barcodeView.setTorchListener(this);

        //初始化,并且开始decorde
        captureManager = new CaptureManager(this, barcodeView);
        captureManager.initializeFromIntent(getIntent(),savedInstanceState);
        captureManager.decode();

    }

    /**
     * 这里需要将captureManager也考虑进去
     */
    @Override
    protected void onPause() {
        super.onPause();
        if(captureManager!=null){
            captureManager.onPause();
        }
    }

    /**
     * 这里需要将captureManager也考虑进去
     */
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(captureManager!=null){
            captureManager.onDestroy();
        }
    }

    /**
     * 这里需要将captureManager也考虑进去
     */
    @Override
    protected void onResume() {
        super.onResume();
        if(captureManager!=null){
            captureManager.onResume();
        }
    }



    /**
     * 这里需要将captureManager也考虑进去
     */
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        if(captureManager!=null){
            captureManager.onSaveInstanceState(savedInstanceState);
        }
    }

    @Override
    public void onTorchOn() {
        isTorchOn = true;
    }

    @Override
    public void onTorchOff() {
        isTorchOn = false;
    }

    /**
     * 切换闪光灯
     * @param view
     */
    public void openOrCloseTorch(View view) {
        if(isTorchOn){
            if(hasTorch())
                barcodeView.setTorchOff();
        }else{
            if(hasTorch())
                barcodeView.setTorchOn();
        }
    }

    /**
     * 判断是否有闪光灯
     * @return
     */
    public boolean hasTorch(){
        return getApplication().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
    }

}


activity_scan.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_scan"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.kodulf.ScanActivity">
<com.journeyapps.barcodescanner.DecoratedBarcodeView
    android:id="@+id/barcodeView"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    app:zxing_framing_rect_width="200dp"
    app:zxing_framing_rect_height="200dp"
    app:zxing_preview_scaling_strategy="fitXY"
    app:zxing_use_texture_view="true"
    android:layout_marginBottom="60dp"
    />
    <Button
        android:layout_alignParentBottom="true"
        android:id="@+id/swithTorch"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="切换闪光灯"
        android:onClick="openOrCloseTorch"/>
</RelativeLayout>


参考:http://blog.youkuaiyun.com/qq_28057541/article/details/52034988 



Android实现二维码扫描功能(五)-封装与接入ZXing扫码库 简介 《Android实现二维码扫描功能》系列文章陆续收到不少开发者的反馈,看到大家这么关注这个专栏,最近抽空对ZXing扫码和生成二维码又做了优化,封装了一个Android library:zxing-lib,这样在接入应用的过程中会更加方便。 预览 在zxing-lib库的基础上做了新版的demo,新添加了生成二维码功能,预览效果如下:(由于录像的mp4转换gif过程中存在失真,色彩有点奇怪,... 阅读详情

相关推荐

Android 详解使用 Zxing实现前置摄像头扫描二维码、生成二维码

现在二维码使用越来越广泛了,几乎处处可见,并且 公司相关的项目中几乎全部都和二维码扫描有关,所以总结一下自己的使用心路历程,总觉得要做点什么来记录自己的成长,让自己的成长有迹可循,如果恰好能够帮助到你,我当然会很开心啦。 废话结束,正文开始 Android中常用的就是zxing,开源项目地址:https://github.com/zxing/zxing 一、 二、 三、 四、 ...

Happy的博客 8816

Android Zxing使用Demo示例(完整)最快的会用

Android Zxing 是谷歌google推荐使用的二维码扫描开发工具,使用Demo示例(完整)最快的会用,最快的了解 更加快速的集成Zxing!

Android集成Zxing实现二维码的扫描与生成(含动态权限)

不诗意的女程序猿不是好厨师~ 【转载请注明出处:From李诗雨】 目前在做一个和机顶盒相关的app,项目中需要使用二维码扫描来绑定机顶盒。 由于工期的原因,也没时间细细研究,只是粗略集成了一下。 在此,又重新写了一个demo,以示记录。 源码demo:点击下载。 Demo说明: ①实现二维码的扫描 ②实现二维码的生成 ③使用RxPermissions做了动态

cjm2484836553的博客 1万+

android-zxing-demo 扫码源代码

android-zxing-demo 扫码源代码,使用google zxing 插件,带编译好的apk,可以直接安装 看效果

Android二维码扫描模块可简单集成(基于ZXIng实现)

Android二维码扫描模块可简单集成(基于ZXing实现)

M075097的博客 6535

《打造极致二维码扫描系列》 -- ZXing开发详解

引言 在Android平台做过二维码相关做过Android开发的人员只要肯定都熟知ZXing

技术搬运工 7551

2022-02-18 Android app 二维码扫描demo,用zxing库,实测ok,记录一下所参考有价值的文章,有生成二维码的demo,但没有亲测。

一、Android中二维码扫描的最常用库是zxing和zbar,这里用zxing。 二、实测效果图,扫描完成后会以Toast方式显示结果。 三、测试代码的架构 四、代码不细说,想看源码的可以download下面这个仁兄的代码分析学习一下,我的代码基本都是照搬这个来测试的。 GitHub - wangyisll/QRDemo: 纯的二维码扫描功能 五、主要参考这个文章 Android纯的二维码扫描界面和功能-zxing_喵了个呜的博客-优快云博客 六、参考其他的...

海月汐辰 1421

Android 二维码扫描框架 基于Zxing3.3的封装

ZxingQRCode 基于ZXing3.0的二维码与条形码扫码封装Step 1. Add the JitPack repository to your build fileStep 2. Add the dependencyStep 3. ExamplesStep 4. Required permissions Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end

weixin_42169702的博客 2500

android studio 利用zxing实现二维码扫描附demo

原文:http://www.cnblogs.com/xinyibufang/p/7337758.html 刚学习安卓,碰到一个需要二维码的项目,折腾了几天,网上资源一大把,可能是自己太菜了,各种bug,调试都调试不过来,最后自己捣鼓出来了。 本文分为两部分, 集成zxing,这里我们用的是精简版的包,Zxing在Github是有随便百度一下就有就不贴了 这里贴上我们用的简化的z

weixin_38256472的博客 1万+

Android开发之google Zxing实现二维码扫描的代码分析

1.技术简介    在Android中实现二维码的扫描主要是通过第三方框架来实现的,主要框架是google的Zxing。现在就用该框架来实现二维码及条形码的扫描及识别,同时对于手机中存储的图片也进行识别,并通过编写一个Demo来学习并熟悉该框架的使用,为以后的实际项目应用打下基础。    二维码简介:http://baike.baidu.com/link?url=79Z-rJZKF

IThtt的专栏 3403

ZXing官方Android二维码扫描Demo深度解析

ZXing库,全称“Zebra Crossing”,是一种开源的、用Java实现的库,主要用于解析不同格式的二维条形码和二维码,被广泛应用于多种平台和设备。ZXing这个名字寓意着条码在各种各样的应用中“穿越”使用,如同斑马线(zebra crossing)一般普遍。ZXing库的起源可以追溯到2008年,当时的开发者们为了在手机上实现条码扫描功能,开始开发这个库。

weixin_36431814的博客 1210

android扫码太慢,android扫码:超简单零代码

最近被导师要求做一个购物收费的app,毕设好难呀~ 网上找了半天全是zxing,但是扫码效果真是有点小垃圾,无奈只能继续寻寻觅觅……突然发现网上有篇讲集成hms的文章,稍微借鉴了一下。由于在下是安卓小白,全篇没有一点代码,只是搬运一下华为网站的codelab,抱着忐忑的心情,竟然可以一键运行……(^-^)V 开森~小女子用的是android studio3.5.1,用过android studio...

weixin_39845306的博客 733

基于ZXing的Android二维码扫描技术解析

本文还有配套的精品资源,点击获取 简介:ZXing(Zebra Crossing)是一个开源项目,支持多种条码的读取和生成。在Android平台上,ZXing广泛用于二维码的扫描与解析,使得开发者能轻松集成二维码相关功能。本文深入解析了ZXing在Android上的实现,包括二维码扫描的基本原理、图像捕获与预处理、以及核心解码逻辑。同时,还介绍了ZXing库提供的辅助功能,...

weixin_35903223的博客 1450

Android中二维码的扫描与生成(zxing库)

2.集成java源码,将demo工程QrScan中app/src/main/java/目录下包中的zxing和util复制到此工程对应的app/src/main/java的包下。layout复制activity_capture.xml,activity_scanner.xml,toolbar_scanner.xml。values复制/替换其中的attrs.xml,ids.xml,colors.xml。1.将获取的jar包复制到工程的app/libs目录下,刷新,然后去添加依赖。...

Ai1114的博客 3万+

基于ZXing的Android二维码扫描Demo实战

二维码扫描技术涉及将图像中的二维码符号解析为可读信息的过程。这种技术广泛应用于支付、身份验证、信息分享等多个场景。通过学习本章内容,读者将能够了解到实现基本二维码扫描功能所需的核心技术和方法。ZXing(”Zebra Crossing”)库是一个开源的、用Java实现的库,能够用于解析多种格式的一维/二维码,包括但不限于QR Code, Datamatrix, Aztec, PDF417等。它在Android开发中被广泛应用于实现二维码扫描功能,是实现快速准确的二维码识别的理想选择。

weixin_35835030的博客 387

Android条码扫描Demo从零到真机:ZXing方案选型与避坑指南

在Android开发中,实现条码扫描功能往往被误以为只需简单调用接口,实则涉及方案选型、相机权限、构建版本与真机适配等完整链路。当前主流技术包括ZXing、ML Kit及CameraX组合,其中ZXing基于离线识别原理,与Android原生环境结合紧密,能够在无网络条件下稳定解析条码,技术门槛较低。对于需要快速验证业务逻辑的团队而言,借助zxing-android-embedded封装库,只需完成依赖引入和Activity回调即可获得完整扫描页面,大幅缩短开发周期。该方案在物流扫码、库存管理等工程实践场景

weixin_33888907的博客 372

二维码扫描Zxing的安卓超简单使用方法

zxing-android-embedded https://github.com/journeyapps/zxing-android-embedded 使用方法github上有,下面就是简单翻译了一下 1,gradle插件需要3.0.1版本以上 classpath ‘com.android.tools.build:gradle:3.0.1’ 2,依赖,如下两个 implementation ‘c...

包子大叔的笔记 848

Android条码扫描实战Demo项目(基于ZXing库)

条码扫描作为移动应用中广泛使用的功能,已深入零售、物流、医疗等多个行业场景。在Android平台,ZXing(Zebra Crossing)开源库因其高效、稳定和可扩展性成为实现条码识别的主流选择。本章将系统介绍ZXing库的设计理念、解码机制及其在Android环境中的技术定位,重点剖析其基于图像处理与编码规则匹配的底层工作原理。graph TDA[图像输入] --> B(灰度化)B --> C{是否清晰?C -->|是| D[二值化与边缘检测]C -->|否| E[对比度增强/降噪]

weixin_35755188的博客 1074
上一篇: Android 使用Zxing实现二维码的生成,扫描
下一篇: 通过订单及售后流程的不同分析思路,看产品与研发思维的区别
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值