zoukankan      html  css  js  c++  java
  • 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]
  • 相关阅读:
    克如斯卡尔 P1546
    真正的spfa
    第四课 最小生成树 要点
    关于vscode中nullptr未定义
    cmake学习笔记
    python学习笔记
    (BFS 图的遍历) 2906. kotori和迷宫
    (图论基础题) leetcode 997. Find the Town Judge
    (BFS DFS 并查集) leetcode 547. Friend Circles
    (BFS DFS 图的遍历) leetcode 841. Keys and Rooms
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7506214.html
Copyright © 2011-2022 走看看