亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

基于ZXing Android實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能

標簽:
Android

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实现生成二维码图片和相机扫描二维码图片即时解码的功能

原文链接:http://www.apkbus.com/blog-919651-77371.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消