Android 长按识别图中二维码 zxing

#基于 Zxing, 初学Android  代码质量不高

//长按,通过zxing读取图片,判断是否有二维码
bigImage.setOnLongClickListener(new View.OnLongClickListener() {
     @Override
     public boolean onLongClick(View viewm) {
         Bitmap obmp = ((BitmapDrawable) (bigImage).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 bitmap1 = new BinaryBitmap(new HybridBinarizer(source));
         QRCodeReader reader = new QRCodeReader();
         Result re = null;
         try {
             re = reader.decode(bitmap1);
         } catch (NotFoundException e) {
             e.printStackTrace();
         } catch (ChecksumException e) {
             e.printStackTrace();
         } catch (FormatException e) {
             e.printStackTrace();
         }
         if (re == null) {
             showAlert(obmp);
         } else {
             showSelectAlert(obmp, re.getText());
         }
         return false;
     }
 });  

private void showAlert(final Bitmap bitmap) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("保存图片")
            .setCancelable(false)
            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterfacem, int i) {
                    saveImageToGallery(bitmap);
                }
            })
            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterfacem, int i) {
                }
            });
    builder.show();
}  

private void showSelectAlert(final Bitmap bitmap, final String url) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("请选择");
    String str[] = {"保存图片", "扫二维码"};
    builder.setItems(str, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterfacem, int i) {
            switch (i) {
                case 0: {
                    saveImageToGallery(bitmap);
                }
                break;
                case 1: {
                    Intent n = new Intent(EnlargeimagevActivity.this, DetailActivity.class);
                    n.putExtra(DetailActivity.BUNDLE_KEY_DISPLAY_TYPE, DetailActivity.WEBVIEW_DETAIL);
                    n.putExtra(DetailwebFragment.WEB_URL, url);
                    startActivity(n);
                }
                break;
            }
        }
    });
    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterfacem, int i) {  

        }
    });
    builder.show();
}
zxing 下载  [http://download.csdn.net/detail/eric19920720/9709305]
时间: 2024-10-14 12:48:52

Android 长按识别图中二维码 zxing的相关文章

android选取系统相册图片后,识别图中二维码

项目中添加设备操作需要扫描二维码,考虑到多种扫码方式,也添加直接识别二维码图片的操作. 首先跳转系统相册选取图片 Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, DEVICE_PHOTO_REQUEST); 接着将选取的图片展示到界面 1 @Override 2

关于微信网页/H5游戏开发中二维码无法识别的解决方法

我接触微信H5开发已经有一年多了,做过很多案例也遇到很多的问题.今天我把困扰我半年之久的问题分享出来,也就是关于微信网页/H5游戏开发中二维码无法识别的解决方法. 我在百度搜索了许久,关于微信H5网页/游戏开发问题以及解决方案的相关文章少之又少,在相关前端交流群中问别人,一问三不知,平时这些群就会上班吹牛逼,真正交流问题的人少又少,真是揪心啊,最后还是得靠自己解决了. [这里,我先举个栗子] 上面这个页面,相信从事微信H5开发的人应该很熟悉,就是常见的分享到朋友圈的页面,通常以[引导分享图标]+

【转】Delphi+Halcon实战一:两行代码识别QR二维码

Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ:51536348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.com网站的升级,halcon没时间操作. 不过,随着国内产业升级,机器人行业的发展,Delphi+Halcon的未来,是无可限量的. 其他网友,有halcon这方面作品的,有需要,也可以交给zw转发. 另外,zw正在争取培训机构合作,开办Delphi+Halcon方面的培训的项目,有兴趣的机构可以联系QQ:3578117

在树莓派(Debian系统)上通过usb摄像头扫描识别QR二维码

树莓派(Debian系统)自带Python开发环境IDLE(Python 2.7.3),接上摄像头,就能通过Python实行对QR code的创建和识别: 首先,需要在树莓派上安装如下工具: sudo apt-get install python-imaging sudo apt-get install zbar-tools sudo apt-get install qrencode sudo apt-get install python-pygame 然后创建qrcode.py文件: #!/u

Android之自定义生成彩色二维码

先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&

Android开发学习之路-二维码学习

这个月装逼有点少了,为什么呢,因为去考软件射鸡师了,快到儿童节了,赶紧写篇博纪念一下逝去的青春,唔,请忽略这句话. 二维码其实有很多种,但是我们常见的微信使用的是一种叫做QRCode的二维码,像下面这样的,可以放心的扫,这只是我的博客主页链接啦: 关于QR码编码的二维码,我们要知道几个特点: 1. 扫描时可以从各个角度去扫,也就是旋转多少度都没关系,不信吗?下次去肯德基买单试试咯. 2. 二维码有容错率,容错率越大,生成的二维码也就越复杂,但是越不容易出错,并且,当二维码被遮挡的时候也越容易扫描

iOS中二维码的生成与使用(入门篇)

这里简单总结一下关于二维码的扫描与生成,用的是原生的AVFoundation框架,其实这个框架目前功能还是够用的,不过这里推荐一个二维码扫描的第三方(face++),网址就不贴了,直接度娘就OK,里面的内容足够丰富,感兴趣的朋友可以自己去倒弄一下. 一.二维码的扫描 步骤: 1.创建输入视频设备(默认是后置摄像头) 2.创建输入设备对象 3.创建元数据输出设备 4.创建session目的是将输入和输出联系在一起) 5.把输出设备添加到session,将输入设备添加到session 6.设置数据源

Android应用开发:生成二维码

二维码这个东西自从出来后就一直流行到现在,无论走到哪里,二维码都可能出现在你的眼前.现在智能手机基本上都有扫一扫功能,扫的就是二维码.那我们怎么样在手机上生成个自己的二维码呢?Android开发中生成二维码不难,用Google ZXing生成二维码很简单,下面我们就简单操作一直,把最主要的代码贴出来,还请大家多指教! 第一步: 确定我们二维码的位置,即是在我们应用的哪个页面的哪个位置,简单讲就是用一个ImageView把二维码展示出来,我们就把二维码展示在下面布局activity_qr_layo

Android 开发中使用到二维码生成和解析

二维码生成 二维码解析 在项目的开发中, 使用二维码作为数据传递 交换 已经是常态了! 在这我也讲讲自己在项目开发中使用到的二维码. 生成二维码的开发流程 1 应用google 给我们提供的zxing.jar (建议官网下载) 2 使用zxing.jar 的MultiFormatWriter 类 生成一张二维码图片 核心代码块 /** * 方法说明:生成无图片二维码 */ @SuppressWarnings("unused") private Bitmap createTwoCode(