【发布时间】:2017-10-28 18:35:58
【问题描述】:
我的应用程序项目具有二维码生成器功能。我使用 Zxing 库来编码 qr 代码生成器,但它只能生成 qr 代码单个变量。我想在单个二维码上创建具有 3 个变量的二维码。请帮我创建这个。 p.s.我是安卓新手。
我的代码
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.journeyapps.barcodescanner.BarcodeEncoder;
public class MainActivity extends AppCompatActivity {
private EditText editText , editText2 , editText3;
private String qrText1 , qrText2 , qrText3;
private ImageView qrCodeView;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) this.findViewById(R.id.editText);
editText2 = (EditText) this.findViewById(R.id.editText2);
editText3 = (EditText) this.findViewById(R.id.editText3);
Button generateBtn = (Button) this.findViewById(R.id.generateButton);
qrCodeView = (ImageView) this.findViewById(R.id.imageView);
generateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
qrText1 = editText.getText().toString().trim();
qrText2 = editText2.getText().toString().trim();
qrText3 = editText3.getText().toString().trim();
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
BitMatrix bitMatrix = multiFormatWriter.encode(qrText1, BarcodeFormat.QR_CODE, 200, 200);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
qrCodeView.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}
});
}
}
我不知道如何在创建单个二维码时将 qrText2 和 qrText3 与 qrText1 添加。
【问题讨论】:
-
AFAIK,二维码是从字符串生成的。您可以随意组装该字符串。您可能想编辑您的问题并提供minimal reproducible example,显示您的代码使用“仅单个变量”,然后解释您在尝试使用更多变量时遇到的问题。
-
您可以使用 Gson 创建一个包含多个变量的 json 对象。然后只需发送 json 对象。 (我做到了here)