Android 長按識別圖中二維碼 zxing

來源:互聯網
上載者:User

標籤:etc   選擇   undefined   tpi   override   code   width   save   listen   

#基於 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]

Android 長按識別圖中二維碼 zxing

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.