基於ZXingAndroid實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能
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實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能
原文部落格 附原始碼下載地址**
相關文章
- 基於ZXing Android實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能Android
- php生成二維碼圖片PHP
- url 生成二維碼圖片
- canvas實現二維碼和圖片合成Canvas
- PHP掃描圖片轉點陣 二維碼轉點陣PHP
- apk 生成二維碼,手機掃碼即裝的便捷工具APK
- Android 基於zxing的二維碼掃描功能的簡單實現及優化Android優化
- Vue 微信端掃描二維碼,蘋果端只能儲存圖片解決方法Vue蘋果
- 生成帶二維碼圖片並通過微信分享
- iOS 掃描二維碼/條形碼iOS
- hyperf 生成二維碼並且轉為CMYK色彩通道的圖片
- 掃描二維碼登入思路
- 設定二維碼圖片背景透明教程
- 使用 jquery.qrcode.js 生成網站地址url二維碼圖片jQueryJS網站
- 移動端如何實現長按儲存圖片(圖片上的二維碼是動態的)?
- java實現二維碼生成Java
- WebView實現長按儲存圖片 長按識別二維碼WebView
- 智慧公安二維碼報警系統研發解決方案-隨時隨地掃描二維碼
- zxing第三方框架實現二維碼掃描以及生成框架
- Android----二維碼掃描、生成、相簿識別(16號)Android
- XQRCode 一個非常方便實用的二維碼掃描、解析、生成庫
- 二維碼管理平臺 生成二維碼
- PHP、Python、JavaScript 識別二維碼和生成二維碼解決方案PHPPythonJavaScript
- png圖片隱寫例項之隱藏二維碼
- 接入微信公眾號登入-二維碼圖片
- 小程式生成二維碼圖片儲存相簿並分享到朋友圈
- 二維碼生成
- 基於 koa 和 node-qrcode 實現一個二維碼生成工具
- Flutter - 生成二維碼與識別二維碼Flutter
- 成品直播原始碼推薦,uniapp 圖片(二維碼)分享到朋友圈原始碼APP
- 基於Koa2開發微信二維碼掃碼支付相關流程
- 直播系統搭建,java二維碼 生成二維碼Java
- 二維碼生成-PythonPython
- 趣味二維碼生成
- 掃二維碼連wifiWiFi
- 用Python實現圖片的清晰掃描Python
- Android 二維碼相關(二)Android
- 帶動態背景圖的二維碼生成器