欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android 集成二维码扫描器

发布时间:2024/1/1 Android 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android 集成二维码扫描器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.





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="将二维码放入框内,即可自动扫描"app:qrcv_topOffset="220dp" /><include layout="@layout/toolbar_qrcode" /></RelativeLayout>

Activity:

public class QRCodeActivity extends BaseActivity implements QRCodeView.Delegate{// 动态申请权限(要申请的权限)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() {// 版本判断。当手机系统大于 23 时,才有必要去判断权限是否获取if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 检查该权限是否已经获取int i1 = ContextCompat.checkSelfPermission(this, permissions[0]);int i2 = ContextCompat.checkSelfPermission(this, permissions[1]);int i3 = ContextCompat.checkSelfPermission(this, permissions[2]);// 权限是否已经 授权 GRANTED---授权 DINIED---拒绝if (i1 != PackageManager.PERMISSION_GRANTED ||i2 != PackageManager.PERMISSION_GRANTED ||i3 != PackageManager.PERMISSION_GRANTED) {// 请求权限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,"未发现二维码");} else { // 处理二维码 result:扫描的结果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,"打开相机错误,请返回并重新打开");}@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();} }


总结

以上是生活随笔为你收集整理的Android 集成二维码扫描器的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。