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, , width, , , 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 : {
saveImageToGallery(bitmap);
}
break;
case : {
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]
Android 长按识别图中二维码 zxing的更多相关文章
- iOS - 长按图片识别图中二维码
长按图片识别图中二维码: // 长按图片识别二维码 UILongPressGestureRecognizer *QrCodeTap = [[UILongPressGestureRecognizer a ...
- Vue实现长按图片识别图中二维码
Vue实现长按图片识别图中二维码 思路:要想实现可以识别图片中的二维码,那必定是要将这张图进行上传操作,上传则需要file对象格式.不管是在H5还是APP中,展示的图片都是通过url的方式展示在img ...
- C#识别图中二维码
1.在NuGet中添加 ZXing.Net 2.实例代码 /// <summary> /// 识别图中二维码 /// </summary> /// <param name ...
- android选取系统相册图片后,识别图中二维码
项目中添加设备操作需要扫描二维码,考虑到多种扫码方式,也添加直接识别二维码图片的操作. 首先跳转系统相册选取图片 Intent intent = new Intent(Intent.ACTION_PI ...
- zxing 如何识别反转二维码
说起二维码扫描,估计很多人用的是 zxing 吧. 然而 zxing 虽然好用,但是却有一些坑. 这边分析一下自己实际项目遇到的一个坑. 什么坑呢? 下面举个栗子你就懂了. 这边生成二维码使用的是网络 ...
- 【转】Delphi+Halcon实战一:两行代码识别QR二维码
Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ号应原作者要求隐藏了:xxxx6348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.co ...
- Android之自定义生成彩色二维码
先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...
- 二维码Zxing&Zbar
二维码Zxing&Zbar 前言:该项目主要介绍了二维码扫描.闪光灯开启.本地二维码图片识别.二维码生成.分别是zxing和zbar(网格二维码)分别实现,具体效果运行项目apk... 开发环 ...
- 二维码zxing源码分析(五)精简代码
由于工作的需要,我并不是需要二维码扫描的所有的功能,我只是需要扫一扫,并显示出来图片和url就行,于是我们就要精简代码了,源码已经分析完了,精简起来就方便多了,源码分析请看 二维码zxing源码分析( ...
随机推荐
- 八种Docker容器开发模式解析
原文链接:http://www.csdn.net/article/2014-10-27/2822294 Docker优点已经说过很多次,这里不做详述,Docker现在越来越受到开发人员的青睐,而且利用 ...
- mysql 锁表查看
information_schema.INNODB_TRX 一般锁表后查询这个表 把相关的事务执行线程kill就可以了,可以分析sql语句执行场景 INNODB_LOCKS PROCES ...
- centos7编译安装mysql5.6
先安装如下依赖包: $ yum -y install make gcc-c++ cmake bison-devel ncurses-devel 下载MySQL5.6.14安装包,https://pa ...
- sso 登录业务逻辑
- 简洁又快速地处理集合——Java8 Stream(下)
上一篇文章我讲解 Stream 流的基本原理,以及它与集合的区别关系,讲了那么多抽象的,本篇文章我们开始实战,讲解流的各个方法以及各种操作 没有看过上篇文章的可以先点击进去学习一下 简洁又快速地处理集 ...
- BA-强强联手江森自控携手日立空调(转载)
文章出处:http://www.aircon.com.cn 2014年1月6日 艾肯空调制冷网 江森真是非常擅长资本运作,也对技术前沿定义的很明白,快速获得技术靠资本也考内力,内化后就开始市场 ...
- BA-siemens-insight_ppcl_adapts函数用法
adapts函数是比pid调节性更好的自适应调节算法,比pid有更好的稳定性,具有震荡小.调节过程快.平稳等特点,函数的用法如下:
- [Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
1.把电脑上插着的硬盘拔了 2.重试 3.修复计算机找到dos命令行 4.然后进入我们放置解压了的系统的那个符盘,(我这里放在D盘)输入:d: 找到刚才我们解压了的系统文件,进入sourc ...
- 游戏开发人员眼中的Unity 3D网页游戏測评报告
眼下.能够实现3D页游的主流技术有Silverlight.XNA.Flash.HTML5和Unity3D. 当中.Unity3D作为一款专注于3D游戏的浏览器插件.最近在国内外页游产品线骚动异常:本人 ...
- 基于STM32的学习型通用红外遥控设备的设计实现(三)
CPU: STM32 调试平台: STM32F103ZET和STM32F103VBT 软件平台: Keil uVision4 电路设计: Altium Designer v6.9 http://blo ...