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]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM