怎样才能在Android Studio中多个值QR码

问题描述 投票:0回答:2

我想进入例如多个文本字段

  • 那么
  • 电子邮件
  • 密码
  • 地址

然后我想生成从该输入的QR码。我怎样才能做到这在Android Studio中?

java android
2个回答
0
投票

建立图书馆和清单

打开应用水平gradle这个文件,导入库。

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

的,点击“立即同步”。然后,打开您的清单文件,并添加以下权限。它是用来保存QR码文件存储。

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

我们必须从Android 6.0版本处理运行时权限。

生成QR码

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是用于预览所生成的QR码的位图的ImageView的。

保存QR码

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);  

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

您的具体情况:将要在QR码进行编码的信息,并将其添加为inputValue将用于QRGEncoder。下面是为了清楚的示例代码:

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/


1
投票

串联字符串中的所有信息,并做说字符串的哈希值。接着使用库如(https://github.com/zxing/zxing)生成QR码。

© www.soinside.com 2019 - 2024. All rights reserved.