Android 集成二维码扫描器
生活随笔
收集整理的這篇文章主要介紹了
Android 集成二维码扫描器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
GitHub:https://github.com/bingoogolapple/BGAQRCode-Android
Layout:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_qrcode"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="cn.queenup.rike.activity.QRCodeActivity"><cn.bingoogolapple.qrcode.zxing.ZXingViewxmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/qrcode_zxingview"android:layout_width="match_parent"android:layout_height="match_parent"app:qrcv_animTime="1000"app:qrcv_borderColor="@android:color/white"app:qrcv_borderSize="1dp"app:qrcv_cornerColor="#ffd535"app:qrcv_cornerLength="20dp"app:qrcv_cornerSize="3dp"app:qrcv_maskColor="#33000000"app:qrcv_rectWidth="200dp"app:qrcv_scanLineColor="@android:color/white"app:qrcv_scanLineSize="1dp"app:qrcv_qrCodeTipText="將二維碼放入框內(nèi),即可自動(dòng)掃描"app:qrcv_topOffset="220dp" /><include layout="@layout/toolbar_qrcode" /></RelativeLayout>Activity:
public class QRCodeActivity extends BaseActivity implements QRCodeView.Delegate{// 動(dòng)態(tài)申請權(quán)限(要申請的權(quán)限)private String[] permissions = {Manifest.permission.CAMERA,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};private ImageView iv_toolbar_back;private ImageView iv_toolbar_flash;private ZXingView zv_zxingView;private boolean isFlash;@Overrideprotected int getLayoutId() {return R.layout.activity_qrcode;}@Overrideprotected void initView() {iv_toolbar_back = (ImageView) findViewById(R.id.toolbar_qrcode_back);iv_toolbar_flash = (ImageView) findViewById(R.id.toolbar_qrcode_flash);zv_zxingView = (ZXingView) findViewById(R.id.qrcode_zxingview);}@Overrideprotected void initListener() {iv_toolbar_back.setOnClickListener(this);iv_toolbar_flash.setOnClickListener(this);}@Overrideprotected void initData() {checkPermissions();zv_zxingView.setDelegate(this);}private void checkPermissions() {// 版本判斷。當(dāng)手機(jī)系統(tǒng)大于 23 時(shí),才有必要去判斷權(quán)限是否獲取if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 檢查該權(quán)限是否已經(jīng)獲取int i1 = ContextCompat.checkSelfPermission(this, permissions[0]);int i2 = ContextCompat.checkSelfPermission(this, permissions[1]);int i3 = ContextCompat.checkSelfPermission(this, permissions[2]);// 權(quán)限是否已經(jīng) 授權(quán) GRANTED---授權(quán) DINIED---拒絕if (i1 != PackageManager.PERMISSION_GRANTED ||i2 != PackageManager.PERMISSION_GRANTED ||i3 != PackageManager.PERMISSION_GRANTED) {// 請求權(quán)限ActivityCompat.requestPermissions(this, permissions, 321);}}}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.toolbar_qrcode_back:finish();break;case R.id.toolbar_qrcode_flash:// 閃光燈if (isFlash){zv_zxingView.closeFlashlight();}else{zv_zxingView.openFlashlight();}isFlash = !isFlash;break;}}@Overridepublic void onScanQRCodeSuccess(String result) {if (TextUtils.isEmpty(result)) {MyToast.showToast(QRCodeActivity.this,"未發(fā)現(xiàn)二維碼");} else { // 處理二維碼 result:掃描的結(jié)果Intent intent = new Intent(this,QRCodeProcessActivity.class);intent.putExtra(Constants.QRCODE,result);startActivity(intent);finish();}zv_zxingView.startSpotDelay(500);}@Overridepublic void onScanQRCodeOpenCameraError() {MyToast.showToast(App.mContext,"打開相機(jī)錯(cuò)誤,請返回并重新打開");}@Overrideprotected void onStart() {super.onStart();zv_zxingView.startCamera();zv_zxingView.showScanRect();zv_zxingView.startSpotDelay(500);}@Overrideprotected void onStop() {zv_zxingView.stopCamera();super.onStop();}@Overrideprotected void onDestroy() {zv_zxingView.onDestroy();super.onDestroy();} }
總結(jié)
以上是生活随笔為你收集整理的Android 集成二维码扫描器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部署CISCO IP电话入门
- 下一篇: js 更改body html,通过Jav