极简化zxing二维码使用

对于极简的二维码使用教程也是想了好久,zxing我也是引用的依赖,原文章的链接可以点这里。
com.king.zxing使用教程

上篇文章写了对于zxing源代码使用的教程,但使用后发现,虽然使用了zxing的库但是对于源代码修改的地方还是有很多,比如默认横屏,若竖屏则无法扫码,主要的问题在于他的扫码作用区域会因为横屏而改变,所以截取出来的图片无法识别。若有需求源代码开发,可以去搜搜zxing横竖屏转换,资料有很多大牛整理了,这里不一一描述了。
在这里主要是针对一个极简化的zxing使用,可以满足更多的需求,而且更方便的使用。
1.首先导入grandle依赖
在这里插入图片描述
implementation ‘com.king.zxing:zxing-lite:1.1.7-androidx’
api ‘com.google.zxing:core:3.3.3’
2.导入成功后可在grandle内看到这两个依赖
在这里插入图片描述
在这里插入图片描述

3.接着就是普通的调用了可直接上代码
`在这里插入图片描述
在这有两个地方需要注意:
1.默认的CaptureActivity为扫描二维码的activity直接intent过去就可以了,但是需要在manifests文件内配置活动名来告知SDK去掉用:
在这里插入图片描述

<activity android:name="com.king.zxing.CaptureActivity"/>

2.第二个就是CaptureActivity本身就是一个activity因此他会有一个返回值扫码结果需要你去返回,所以在使用的时候你需要利用startactivityforresult来intent。此时你又会问既然有返回值那么他返回的字符串的key是啥,这时候我们可以继续看CaptureActivity内的内容。
在CaptureHelper类内返回了扫码结果,onResult方法内显示了key为:Intents.Scan.RESULT即为:SCAN_RESULT
在这里插入图片描述
因此在onActivityResult回调时只需要直接回调即可。

    private TextView text;
    private String SCANRESULT = "SCAN_RESULT";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = findViewById(R.id.text);
        text.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
                startActivityForResult(intent,10);
            }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode,Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.i("main","data: "+data.getStringExtra(SCANRESULT));
    }

layout的代码:


    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

到这里就大功告成了。可以看看效果
因为手机原因只给了结果截图,工程的话如果需要可以私信我。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值