真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

Android如何實現二維碼掃描和生成二維碼功能

這篇文章主要介紹了Android如何實現二維碼掃描和生成二維碼功能,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

我們提供的服務有:成都網站建設、網站制作、微信公眾號開發(fā)、網站優(yōu)化、網站認證、于都ssl等。為上千多家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的于都網站制作公司

1.demo展示如下:

1.1demo首頁

Android如何實現二維碼掃描和生成二維碼功能 

1.2掃描界面

Android如何實現二維碼掃描和生成二維碼功能 

可以根據需求修改,我實際項目中界面截圖如下:

Android如何實現二維碼掃描和生成二維碼功能 

1.3生成二維碼

Android如何實現二維碼掃描和生成二維碼功能 

2.引入文件

2.1 下載demo,拷貝demo中的com.google.zxing5個包和com.utils包引入到自己的項目中。

Android如何實現二維碼掃描和生成二維碼功能 

2.2 拷貝本項目demo中的布局activity_scanner.xml和toolbar_scanner.xml

Android如何實現二維碼掃描和生成二維碼功能 

2.3 拷貝資源目錄raw至本項目中,beep.ogg是掃描成功時的提示音。

Android如何實現二維碼掃描和生成二維碼功能 

2.4 拷貝或合并文件內容attrs.xml/colors.xml/ids.xml三個文件。

Android如何實現二維碼掃描和生成二維碼功能 

2.5 build.gradle文件中添加引用

compile 'com.google.zxing:core:3.3.0'

2.6 修改R文件引用路徑 修改以下4個文件中的R文件引用地址,引用本項目的R

//com.google替換成自己項目的包名即可
com.google.zxing.activity.CaptureActivity
com.google.zxing.decoding.CaptureActivityHandler
com.google.zxing.decoding.DecodeHandler
com.google.zxing.view.ViewfinderView

3. 權限配置

3.1 AndroidManifest.xml中添加權限申請代碼:

 
  
  
  

4. 功能實現

完成上述集成之后,通過調用CaptureActivity就可以實現掃碼功能。 MainActivity源碼部分:

public class MainActivity extends AppCompatActivity {
 @BindView(R.id.openQrCodeScan)
 Button openQrCodeScan;
 @BindView(R.id.text)
 EditText text;
 @BindView(R.id.CreateQrCode)
 Button CreateQrCode;
 @BindView(R.id.QrCode)
 ImageView QrCode;
 @BindView(R.id.qrCodeText)
 TextView qrCodeText;
 //打開掃描界面請求碼
 private int REQUEST_CODE = 0x01;
 //掃描成功返回碼
 private int RESULT_OK = 0xA1;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 ButterKnife.bind(this);
 }
 @OnClick({R.id.openQrCodeScan, R.id.CreateQrCode})
 public void onClick(View view) {
 switch (view.getId()) {
  case R.id.openQrCodeScan:
  //打開二維碼掃描界面
  if(CommonUtil.isCameraCanUse()){
   Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
   startActivityForResult(intent, REQUEST_CODE);
  }else{
   Toast.makeText(this,"請打開此應用的攝像頭權限!",Toast.LENGTH_SHORT).show();
  }
  break;
  case R.id.CreateQrCode:
  try {
   //獲取輸入的文本信息
   String str = text.getText().toString().trim();
   if(str != null && !"".equals(str.trim())){
   //根據輸入的文本生成對應的二維碼并且顯示出來
   Bitmap mBitmap = EncodingHandler.createQRCode(text.getText().toString(), 500);
   if(mBitmap != null){
    Toast.makeText(this,"二維碼生成成功!",Toast.LENGTH_SHORT).show();
    QrCode.setImageBitmap(mBitmap);
   }
   }else{
   Toast.makeText(this,"文本信息不能為空!",Toast.LENGTH_SHORT).show();
   }
  } catch (WriterException e) {
   e.printStackTrace();
  }
  break;
 }
 }
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 super.onActivityResult(requestCode, resultCode, data);
 //掃描結果回調
 if (resultCode == RESULT_OK) { //RESULT_OK = -1
  Bundle bundle = data.getExtras();
  String scanResult = bundle.getString("qr_scan_result");
  //將掃描出的信息顯示出來
  qrCodeText.setText(scanResult);
 }
 }
}

5. 源碼分析

5.1打開二維碼掃描界面

//打開二維碼掃描界面
  if(CommonUtil.isCameraCanUse()){
   Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
   startActivityForResult(intent, REQUEST_CODE);
  }else{
   Toast.makeText(this,"請打開此應用的攝像頭權限!",Toast.LENGTH_SHORT).show();
  }

5.2 根據輸入的文本生成對應的二維碼并且顯示出來

try {
   //獲取輸入的文本信息
   String str = text.getText().toString().trim();
   if(str != null && !"".equals(str.trim())){
   //根據輸入的文本生成對應的二維碼并且顯示出來
   Bitmap mBitmap = EncodingHandler.createQRCode(text.getText().toString(), 500);
   if(mBitmap != null){
    Toast.makeText(this,"二維碼生成成功!",Toast.LENGTH_SHORT).show();
    QrCode.setImageBitmap(mBitmap);
   }
   }else{
   Toast.makeText(this,"文本信息不能為空!",Toast.LENGTH_SHORT).show();
   }
  } catch (WriterException e) {
   e.printStackTrace();
  }

5.3 掃描結果回調

@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 super.onActivityResult(requestCode, resultCode, data);
 //掃描結果回調
 if (resultCode == RESULT_OK) { //RESULT_OK = -1
  Bundle bundle = data.getExtras();
  String scanResult = bundle.getString("qr_scan_result");
  //將掃描出的信息顯示出來
  qrCodeText.setText(scanResult);
 }
 }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android如何實現二維碼掃描和生成二維碼功能”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯,關注創(chuàng)新互聯行業(yè)資訊頻道,更多相關知識等著你來學習!


當前標題:Android如何實現二維碼掃描和生成二維碼功能
網頁路徑:http://weahome.cn/article/jchdpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部