`
yhz61010
  • 浏览: 561428 次
  • 来自: -
博客专栏
63c13ecc-ef01-31cf-984e-de461c7dfde8
libgdx 游戏开发
浏览量:12245
社区版块
存档分类
最新评论

[原创] Android 长按识别图中二维码 - Zxing

阅读更多
前提:
本文使用了 ButterKnife 依赖库

开始环境: Android Studio

在 Module 文件夹下的 build.gradle 文件中追加 zxing 依赖:
compile 'com.google.zxing:core:3.3.0'

之后添加图片长按事件(此处使用了 ButterKnife 的注解),并实现识别二维码的功能:
@OnLongClick({R.id.imageView})
public boolean btnLongClick(final ImageView iv) {
    Logger.info(TAG, "Long click on image");

    new AlertDialog.Builder(getActivity())
            .setPositiveButton(R.string.recognize_qr_code, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    progressBar.setVisibility(View.VISIBLE);

                    Bitmap obmp = ((BitmapDrawable) (iv.getDrawable())).getBitmap();
                    int width = obmp.getWidth();
                    int height = obmp.getHeight();
                    int[] data = new int[width * height];
                    obmp.getPixels(data, 0, width, 0, 0, width, height);
                    RGBLuminanceSource source = new RGBLuminanceSource(width, height, data);
                    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

                    new QrCodeAsyncTask().execute(bitmap);
                }
            }).show();

    return true;
}

class QrCodeAsyncTask extends AsyncTask<BinaryBitmap, Void, Result> {

    @Override
    protected Result doInBackground(BinaryBitmap... params) {
        QRCodeReader reader = new QRCodeReader();
        Result result = null;
        try {
            result = reader.decode(params[0]);
        } catch (NotFoundException e) {
            e.printStackTrace();
        } catch (ChecksumException e) {
            e.printStackTrace();
        } catch (FormatException e) {
            e.printStackTrace();
        }
        return result;
    }

    @Override
    protected void onPostExecute(Result result) {
        super.onPostExecute(result);
        progressBar.setVisibility(View.GONE);

        String text = result.getText();
        Logger.info(TAG, "QR CODE: " + text);
        Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT).show();
    }
}
0
0
分享到:
评论

相关推荐

    Zxing集成和长按识别二维码

    本文将详细探讨如何在Android项目中集成Zxing以及如何实现长按识别二维码的特性。 **一、Zxing集成** 1. **添加依赖** 在Android Studio项目中,首先要在`build.gradle`(Module级别)文件中添加Zxing的依赖。...

    Android 支持长按识别图中二维码,条码扫描,二维码扫描

    总之,Android应用支持长按识别图中二维码和条码扫描,需要结合ZXing库进行集成开发,处理图像捕获、扫描逻辑、权限管理等多个环节。通过合理的编程实践和用户体验设计,可以构建出高效、可靠的扫码功能。

    Android 中二维码扫描识别以及调用相册里面的二维码图片识别的效果

    基于google Zxing实现二维码的生成,识别和长按识别的效果,仿微信选择相册里的二维码图片直接识别的效果 ,选择相册在主页面点击打开摄像机进行扫描,进入扫描页面,在里面有选择相册的选项,直接点击就可以调用...

    Android利用zxing生成二维码,识别二维码超详细、超简易demo

    Android利用zxing生成二维码,识别二维码超详细、超简易demo,解压后用Android studio可直接打开,附教程:https://blog.csdn.net/mountain_hua/article/details/80646089

    Android 基于google Zxing实现二维码的生成,识别和长按识别的效果

    近项目用到了二维码的生成与识别,之前没有接触这块,然后就上网搜了搜,发现有...就是在Demo中增加了长按识别的功能,网上虽然也有长按识别的Demo,但好多下载下来却无法运行,然后总结了一下,加在了下面的Demo中。

    android webView夜间模式 长按识别图片以及二维码

    本文将深入探讨如何在WebView中实现夜间模式、长按识别图片以及二维码扫描的功能。 首先,我们来讨论如何实现夜间模式。在Android的WebView中,我们可以利用CSS的媒体查询(Media Queries)来根据设备的光照条件...

    Android 二维码扫描 长按二维码识别 相册识别 状态栏颜色设置

    本项目"Android 二维码扫描 长按二维码识别 相册识别 状态栏颜色设置"聚焦于如何在Android应用中实现二维码扫描,并提供了一些额外的特性,如长按识别和相册选择识别。下面将详细介绍这些功能的实现方法。 首先,...

    android 二维码生成和长按识别 goole.ZXing

    在Android开发中,ZXing...通过这些步骤,你可以创建一个简单的Android应用,让用户能够生成二维码并长按识别二维码。但要注意,这个应用可能不包含完整的扫描功能,例如从相机实时扫描或从相册选取图片进行扫描。

    Android webview长按识别二维码

    本文将详细讲解如何实现"Android Webview长按识别二维码"的功能。 首先,我们需要了解两个关键概念:Webview和二维码识别。Webview是Android SDK提供的一种用于在应用内部显示网页的控件,它可以处理JavaScript、...

    长按识别二维码和Zxing的集成

    通过以上步骤,你就成功地在Android应用中集成了Zxing库,并实现了长按识别二维码的功能。用户现在只需长按屏幕上的二维码图像,就可以快速读取其中的信息,极大地提升了应用的便捷性。在实际开发中,还可以根据需求...

    zxing二维码生成扫描,识别二维码图片,长按识别二维码调用方便简洁

    zxing二维码生成扫描,识别二维码图片,长按识别二维码调用方便简洁,可选择导入as的modules 只需要在bulid.gradle(app) 中的dependencies :里面 compile project(path: ':BarCode')一下就能用。

    webview--长按识别二维码

    在这种情况下,为WebView添加长按识别二维码的功能就显得尤为实用。本文将详细探讨如何实现这一功能。 首先,我们要理解WebView的基本工作原理。WebView是Android和iOS等操作系统提供的一个原生控件,它能够加载和...

    二维码扫描+长按识别demo

    - 在长按识别中,防止不必要的计算,例如只在长按时才解析图片中的二维码。 7. **安全性**: - 识别到的二维码信息应进行安全检查,防止恶意链接或代码的执行。 - 用户隐私保护,确保不会在未经用户许可的情况下...

    webview长按识别二维码

    在Android或iOS应用中,我们经常遇到需要在WebView中实现一些额外的功能,比如“长按识别二维码”。这个功能使得用户无需离开应用就能便捷地读取二维码信息,提升了用户体验。下面我们将详细探讨如何在WebView中实现...

    Android WebView实现长按保存图片及长按识别二维码功能

    "Android WebView实现长按保存图片及长按识别二维码功能" 本文主要介绍了使用Android WebView实现长按保存图片及长按识别二维码功能的实现方法。通过使用WebView.HitTestResult可以获取长按内容的类型,从而判断...

    基于Android的二维码识别系统的实现

    本篇文章将探讨如何基于Android平台实现一个二维码识别系统,帮助用户快速读取和解析二维码中的信息。该系统不仅提高了信息传输的效率,也为移动应用开发增添了新的功能。 首先,我们需要理解二维码的基本原理。...

    长按识别二维码

    在移动应用开发中,"长按识别二维码"是一项常见的功能,尤其在社交、电商和信息交互类应用中广泛使用。这个资源集包含了实现这一功能的关键代码和资源,可以帮助开发者快速集成到自己的项目中,无需从零开始编写相关...

    Android基于google Zxing实现二维码的生成

    此外,为了实现长按识别二维码的功能,`qrImgImageView`设置了`OnLongClickListener`。当用户长按时,`saveCurrentImage()`方法被调用,保存当前二维码图片以便识别。这个功能可能涉及到文件操作和启动相机扫描...

    Android之WebView仿微信中图片操作(含二维码识别)

    这篇教程将专注于如何在WebView中实现类似微信的图片操作功能,包括长按图片进行操作以及识别图片中的二维码。以下是对这个主题的详细阐述: 首先,我们要在Android应用中集成WebView。在布局XML文件中添加一个...

Global site tag (gtag.js) - Google Analytics