关于二维码的使用

来源:互联网 发布:和平网络电视怎么用 编辑:程序博客网 时间:2024/06/07 08:33

在实际项目开发中,有时会遇到二维码的需求,包括扫描识别二维码、生成二维码(包括带Logo的二维码)等,现在用的最多也就是Zxing的第三方库了吧!网上搜了一下库然后下载了下来!接下来就是导入第三方库的步骤了!还是说一下吧!
第一步:这里写图片描述
导入Module

第二步:这里写图片描述
选择库所在的路径,然后Finish

第三步:这里写图片描述
Module依赖一下。

第四步:依赖完成后,可能还会有一些配置性的错误需要修改什么的,当然没有更好。然后就可以痛苦的玩耍了!

下面上核心代码:

/**     * 开启扫描     */    public void scan(View view){        //先判断用户之前是否已经授予过该权限                if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {                    startActivityForResult(new Intent(this,CaptureActivity.class),0);                } else {                    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1);                }    }/**  请求授权时,用户点击授权与否的回调*/@Override    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {        switch (requestCode) {            case 1: {                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                    // 用户授予权限                    startActivityForResult(new Intent(this,CaptureActivity.class),0);                } else {                    // 用户拒绝权限                }                return;            }        }    }    /**     * 返回扫描结果     */    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        if (requestCode == 0) {            if(data==null){                return;            }else {                Bundle bundle = data.getExtras();                if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {                    String result = bundle.getString(CodeUtils.RESULT_STRING);                    Toast.makeText(this, "扫描结果:" + result, Toast.LENGTH_LONG).show();                } else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {                    Toast.makeText(MainActivity.this, "扫描失败", Toast.LENGTH_LONG).show();                }            }        }    }

————————————————————————————————————————————————————————————————
扫描界面的布局可以自定义:
在库文件的fragment_capture.xml中可以自定义想要的扫描界面。
这里写图片描述
而且,由图可以看出,这些属性都是可以自定义的

不喜欢自带的 可以在xml中自定义这些属性:

<com.uuzuche.lib_zxing.view.ViewfinderView        android:id="@+id/viewfinder_view"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        app:inner_margintop ="190dp"        app:inner_width="200dp"        app:inner_height="200dp"        app:inner_corner_color="@color/scan_corner_color"        app:inner_scan_speed="12"/>
0 0
原创粉丝点击