gpt4 book ai didi

java - 如何在android studio中生成多值二维码

转载 作者:行者123 更新时间:2023-11-30 05:47:24 26 4
gpt4 key购买 nike

例如,我想输入多个文本字段

  • 姓名
  • 电子邮件
  • 密码
  • 地址

然后我想根据这个输入生成一个二维码。我怎样才能在android studio中做到这一点?

最佳答案

设置库和 list

打开应用程序级 gradle 文件并导入库。

implementation 'androidmads.library.qrgenearator:QRGenearator:1.0.3'  

然后,单击“立即同步”。然后,打开 list 文件并添加以下权限。用于将二维码保存到文件存储中。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  

我们需要处理 Android 版本 6.0 的运行时权限。

生成二维码

QRGEncoder qrgEncoder = new QRGEncoder(inputValue, null, QRGContents.Type.TEXT, smallerDimension);  

这里,inputValue是要转换为QR码的输入。输入类型也可以在初始化库时指定。我们也可以指定尺寸。然后,添加以下行来创建 QR 码并将其编码为位图格式。

try {  
// Getting QR-Code as Bitmap
bitmap = qrgEncoder.encodeAsBitmap();
// Setting Bitmap to ImageView
qrImage.setImageBitmap(bitmap);
} catch (WriterException e) {
Log.v(TAG, e.toString());
}

qrImage是一个ImageView,用于预览生成的二维码位图。

保存二维码

QR 生成器可以选择使用以下几行将生成的 QR 代码位图保存到存储中。

// Save with location, value, bitmap returned and type of Image(JPG/PNG).  
QRGSaver.save(savePath, edtValue.getText().toString().trim(), bitmap, QRGContents.ImageType.IMAGE_JPEG);

我们也可以将 QR 码保存为 PNG 和 JPG 格式。我们必须处理 Android 6.0 版本的运行时权限。

您的具体情况:组合您想要在 QR 码中编码的信息,并将其添加为 QRGEncoder 的 inputValue。为了清楚起见,下面是一个示例代码:

public class MainActivity extends AppCompatActivity {  

String TAG = "GenerateQRCode";
EditText edtValue;
ImageView qrImage;
Button start, save;
String inputValue;
String savePath = Environment.getExternalStorageDirectory().getPath() + "/QRCode/";
Bitmap bitmap;
QRGEncoder qrgEncoder;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

qrImage = (ImageView) findViewById(R.id.QR_Image);
edtValue = (EditText) findViewById(R.id.edt_value);
start = (Button) findViewById(R.id.start);
save = (Button) findViewById(R.id.save);

start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
inputValue = edtValue.getText().toString().trim();
if (inputValue.length() > 0) {
WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
Point point = new Point();
display.getSize(point);
int width = point.x;
int height = point.y;
int smallerDimension = width < height ? width : height;
smallerDimension = smallerDimension * 3 / 4;

qrgEncoder = new QRGEncoder(
inputValue, null,
QRGContents.Type.TEXT,
smallerDimension);
try {
bitmap = qrgEncoder.encodeAsBitmap();
qrImage.setImageBitmap(bitmap);
} catch (WriterException e) {
Log.v(TAG, e.toString());
}
} else {
edtValue.setError("Required");
}
}
});

save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean save;
String result;
try {
save = QRGSaver.save(savePath, edtValue.getText().toString().trim(), bitmap, QRGContents.ImageType.IMAGE_JPEG);
result = save ? "Image Saved" : "Image Not Saved";
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
});

}
}

文章:https://www.c-sharpcorner.com/article/how-to-generate-qr-code-in-android/

关于java - 如何在android studio中生成多值二维码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54608164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com