添加可以自定义界面的二维码条形码扫描

资源在github的0420中
添加流程:

  1. gradle中添加依赖:

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

  1. 将包com.google.zxing复制到自己项目的路劲中。
  2. 复制资源文件:(包括raw中的beep.ogg(声音),value中的attrs,ids.xml,string,color等)
  3. 在mainfeast中注册activity并添加相机权限:

<activity android:name="com.google.zxing.activity.CaptureActivity" android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/> <uses-permission android:name="android.permission.VIBRATE" /> <!-- 震动权限 --> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> <!-- 使用照相机权限 --> <uses-feature android:name="android.hardware.camera.autofocus" /> <!-- 自动聚焦权限 -->

 

  1. 代码中使用:

调用时:

Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);

 

Activity中的回调:

@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");
        Toast.makeText(MainActivity.this, scanResult, Toast.LENGTH_LONG).show();
    }
}

 

如果想要更改扫描框的UI,可以进行如下设置:

在CameraManager中的getFramingRect中设置:

其中:

//修改之后
int width = screenResolution.x * 7 / 10;  //设置扫描区域占屏幕的区域,分子越大区域越大
int height = screenResolution.y * 7 / 10;

在其中:

int leftOffset = (screenResolution.x - width) / 2;      //设置扫描框距离左边的位置
int topOffset = (screenResolution.y - height) / 4;

 

代码实例:https://github.com/766464365/0420

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值