Android(安卓)长按识别图中二维码 zxing
16lz
2021-01-24
腾讯云服务器 双11 优惠
https://cloud.tencent.com/act/double11/reserve?spread_hash_key=Pel1qM
#基于 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](http://download.csdn.net/detail/eric19920720/9709305)
更多相关文章
- Drawable、Bitmap、byte[]之间的转换
- Android(安卓)使用Glide加载图片变色
- Android实现滑动屏幕切换图片
- Android消息推送(广播机制)+通知
- android Gridview生成程序快捷键的复杂方法
- 图片背景平铺
- Android(安卓)几种图像特效处理的集锦
- Android中几种图片特效的处理的实现方法
- Android通过Movie展示Gif格式图片