今天,要介紹的是介紹QR碼(Quick Response Code)在Android Studio中的應用。QR碼是一種二維條碼,它可以存儲大量數據,並且能夠在快速掃描的情況下迅速讀取。在這篇文章中,我們將探討如何使用Android Studio來生成和讀取QR碼,並討論一些實際應用。
dependencies {
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
}
public void writerQRCode(View v) {
// 創建一個QR碼生成器
MultiFormatWriter writer = new MultiFormatWriter();
try {
// 使用生成器將文本轉換為QR碼的位矩陣(BitMatrix)
// e.getText().toString().trim() 從EditText中獲取輸入的文本,然後去除首尾的空格和換行符
BitMatrix matrix = writer.encode(e.getText().toString().trim(), BarcodeFormat.QR_CODE, 500, 500);
// 創建一個QR碼編碼器
BarcodeEncoder encoder = new BarcodeEncoder();
// 使用編碼器創建一個QR碼的Bitmap圖像
Bitmap bitmap = encoder.createBitmap(matrix);
// 將生成的QR碼設置為ImageView的圖像
imageView.setImageBitmap(bitmap);
} catch (WriterException ex) {
ex.printStackTrace();
}
}
private final String[] permission = new String[]{
Manifest.permission.CAMERA
};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(permission, PERMISSION_REQUEST_CODE);
}
public void openCamera(View v) {
IntentIntegrator integrator = new IntentIntegrator(this);
// 選擇掃描類型
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);
integrator.setPrompt("開始掃描");
// 1為前相機,0為後相機
integrator.setCameraId(0);
// 逼聲
integrator.setBeepEnabled(true);
// 鎖定方向
integrator.setOrientationLocked(false);
integrator.initiateScan();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 解析QR碼掃描結果
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult != null) {
if (scanResult.getContents() != null) {
// 獲取掃描到的內容
String scannedContent = scanResult.getContents();
if (!scannedContent.equals("")) {
// 如果內容不為空,將其設置為TextView的文本
t.setText(scannedContent);
// 啟用自動連結,例如URL和電子郵件地址
t.setAutoLinkMask(Linkify.ALL);
// 設置文本滾動
t.setMovementMethod(LinkMovementMethod.getInstance());
}
} else {
// 如果無法獲取內容,顯示"失敗!!!"文本
t.setText("失敗!!!");
}
}
}