今天项目中有生成 二维码的需求,所以就想到了zxing这个 二维码库,至于zxing库的详解,这里不做说明,网上一大堆。这里主要讲下使用过程中遇到的大坑,空白边距问题。源码中给出了一个margen的参数用来设置空白边距,但是实际使用的时候并不起作用:
* @param margin 空白边距 (可修改,要求:整型且>=0), 传null时,zxing源码默认使用"4"。
于是网上查了一通,说是传进来的margin 参数,并没有去直接拿去设置边距,所以要去修改库的源码,由于项目很赶,没时间去看源码,至于怎么改 网上也有说明,也参照网上的例子改过,就是直接删掉白色边框,这个不符合我项目要求,所以我的做法是给需要设置二维码的ImageView设置宽高:
<ImageView android:layout_width="200dp" android:layout_height="200dp" android:id="@+id/img_Qrcode" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@+id/text_Qrcode" app:layout_constraintVertical_chainStyle="packed" />
然后 img.setImageBitmap(QRCodeUtil.createQRCodeBitmap(content.toString(), 400, bitmap, 0.3f)); 生成二维码的时候 设置 二维码的宽高大于ImageView的宽高 就可以 缩小 白色边框的距离 可以看到我设置ImageView的宽高是200,二维码的宽高是400。就这样暂时解决了问题