Android - 16 - QR
- 3. QR
Π QR ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ:
Π’Π΅ΠΊΡΡ.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ°ΠΉΡ.
ΠΠΈΠ·ΠΈΡΠΊΠ°.
Π¨Π°Π±Π»ΠΎΠ½ SMS.
ΠΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°.
ΠΠ΅ΠΎΠ»ΠΎΠΊΠ°ΡΠΈΡ.
Π‘ΠΎΠ±ΡΡΠΈΠ΅.
Π¨Π°Π±Π»ΠΎΠ½ e-mail.
ΠΠΎΡΡΡΠΏ ΠΊ wi-ο¬ (Π±Π΅Π· ΠΏΠ°ΡΠΏΠΎΡΡΠ°!).
3 QR
- 4. QR
Π QR ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ:
ΠΠΎ 7089 ΡΠΈΡΡ.
ΠΠΎ 4296 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎ 2953 Π±Π°ΠΉΡΠΎΠ².
ΠΠΎ 1817 ΠΈΠ΅ΡΠΎΠ³Π»ΠΈΡΠΎΠ².
4 QR
- 9. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Zebra Crossing β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡ Google Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
1D/2D ΠΊΠΎΠ΄ΠΎΠ².
ZBar β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
1D/2D
ΠΊΠΎΠ΄ΠΎΠ².
Barcode Scanner β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ
ZXing ΠΈ ZBar Π΄Π»Ρ Android.
9 QR
- 10. Π Π°Π±ΠΎΡΠ° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ
ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ZXing
QRCodeWriter 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
- 11. Π Π°Π±ΠΎΡΠ° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ
ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ZBar
ImageScanner 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
- 12. Π Π°Π±ΠΎΡΠ° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ
ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Barcode Scanner
public class Scan extends Activity implements ZXingScannerView.ResultHandler {
private ZXingScannerView mScannerView;
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
mScannerView = new ZXingScannerView(this);
setContentView(mScannerView);
}
@Override
public void onResume() {
super.onResume();
mScannerView.setResultHandler(this);
mScannerView.startCamera();
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera();
}
@Override
public void handleResult(Result rawResult) {
// Do something with the result here
Log.v(TAG, rawResult.getText());
Log.v(TAG, rawResult.getBarcodeFormat().toString());
}
}
12 QR