NextQRCode ZXing开源库的精简版
基于ZXing Android实现的二维码扫描支持库。 包括生成二维码图片、解析二维码图片和相机扫描即时解码三部分功能。
与原ZXingMini项目对比
NextQRCode做了重大架构修改,原ZXingMini项目与当前NextQRCode不兼容
dependencies {
compile 'com.github.yoojia:next-qrcode:2.0-2'
...
}生成二维码图案
// 二维码中间图标final Bitmap centerImage = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);// 生成的二维码图案Bitmap qrCodeImage = new QRCodeEncoder.Builder() .width(size) // 二维码图案的宽度 .height(size) .paddingPx(0) // 二维码的内边距 .marginPt(3) // 二维码的外边距 .centerImage(centerImage) // 二维码中间图标 .build() .encode(content);
二维码解码
final QRCodeDecoder mDecoder = new QRCodeDecoder.Builder().build();// 传入二维码图案Bitmap对象然后解码成文本内容String content = mDecoder.decode(bitmap);
使用 LiveCameraView 自动扫描解码
public class QRCodeScanActivity extends AppCompatActivity { public static final String TAG = QRCodeScanActivity.class.getSimpleName(); private LiveCameraView mLiveCameraView; private ImageView mCaptureImage; private TextView mContentView; private final CaptureCallback mCaptureCallback = new CaptureCallback() { @Override public void onCaptured(Bitmap bitmap) {
Log.i(TAG, "-> Got bitmap, show to capture view");
mCaptureImage.setImageBitmap(bitmap);
Observable.just(bitmap)
.map(new Func1<Bitmap, String>() { private final QRCodeDecoder mDecoder = new QRCodeDecoder.Builder().build(); @Override
public String call(Bitmap bitmap) { return mDecoder.decode(bitmap);
}
})
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<String>() { @Override public void call(String content) {
mContentView.setText(content);
}
});
}
}; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_scan);
mCaptureImage = (ImageView) findViewById(R.id.capture_image);
mContentView = (TextView) findViewById(R.id.content);
mLiveCameraView = (LiveCameraView) findViewById(R.id.capture_preview_view);
mLiveCameraView.setPreviewReadyCallback(new CameraPreviewView.PreviewReadyCallback() { @Override
public void onStarted(Camera camera) {
Log.i(TAG, "-> Camera started, start to auto capture");
mLiveCameraView.startAutoCapture(1500, mCaptureCallback);
} @Override
public void onStopped() {
Log.i(TAG, "-> Camera stopped");
mLiveCameraView.stopAutoCapture();
}
});
}
}**基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦


