android - 16 - qr
Post on 05-Dec-2014
220 Views
Preview:
DESCRIPTION
TRANSCRIPT
QR
Олег Годовых
QR
Quick Response Code
2 QR
QR
В QR может находиться:I Текст.I Ссылка на сайт.I Визитка.I Шаблон SMS.I Номер телефона.I Геолокация.I Событие.I Шаблон e-mail.I Доступ к wi-fi (без паспорта!).
3 QR
QR
В QR может находиться:I До 7089 цифр.I До 4296 символов.I До 2953 байтов.I До 1817 иероглифов.
4 QR
QR
5 QR
QR
QR корректирует ошибки
6 QR
QR
QR может выглядеть очень разнообразно
7 QR
QR
8 QR
Библиотеки
I Zebra Crossing — библиотека от Google для обработкиразличных 1D/2D кодов.
I ZBar — библиотека для распознавания различных 1D/2Dкодов.
I Barcode Scanner — библиотека с удобной интеграциейZXing и ZBar для Android.
9 QR
Работа с библиотеками
Кодирование в ZXingQRCodeWriter writer = new QRCodeWriter();BitMatrix matrix = writer.encode("EXAMPLE", BarcodeFormat.QR_CODE, QR_WIDTH,
QR_HEIGHT);Bitmap bmp = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.RGB_565);for (int x = 0; x < QR_WIDTH; x++){
for (int y = 0; y < QR_HEIGHT; y++){bmp.setPixel(x, y, matrix.get(x,y) ? Color.BLACK : Color.WHITE);
}}ImageView view = (ImageView)findViewById(R.id.qr);view.setImageBitmap(bmp);
10 QR
Работа с библиотеками
Декодирование в ZBarImageScanner scanner = new ImageScanner();scanner.setConfig(0, Config.X_DENSITY, 3);scanner.setConfig(0, Config.Y_DENSITY, 3);
private Camera.PreviewCallback previewCb = new Camera.PreviewCallback() {public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();Camera.Size size = parameters.getPreviewSize();Image barcode = new Image(size.width, size.height, "Y800");barcode.setData(data);int result = scanner.scanImage(barcode);
if (result != 0) {previewing = false;mCamera.setPreviewCallback(null);mCamera.stopPreview();SymbolSet syms = scanner.getResults();for (Symbol sym : syms) {
String text = sym.getData();// do something
}}
}};
11 QR
Работа с библиотекамиДекодирование в Barcode Scannerpublic class Scan extends Activity implements ZXingScannerView.ResultHandler {
private ZXingScannerView mScannerView;
@Overridepublic void onCreate(Bundle state) {
super.onCreate(state);mScannerView = new ZXingScannerView(this);setContentView(mScannerView);
}
@Overridepublic void onResume() {
super.onResume();mScannerView.setResultHandler(this);mScannerView.startCamera();
}
@Overridepublic void onPause() {
super.onPause();mScannerView.stopCamera();
}
@Overridepublic void handleResult(Result rawResult) {
// Do something with the result hereLog.v(TAG, rawResult.getText());Log.v(TAG, rawResult.getBarcodeFormat().toString());
}}
12 QR
Полезные ссылки
I http://www.qrhacker.comI http://github.com/dm77/barcodescannerI http://www.swetake.com/qrcode/qr1_en.htmlI http://research.swtch.com/qart
13 QR
top related