生成QR码后如何保存名称

WoojuSpace

我正在尝试制作一个生成QR码的应用程序。它运作良好,但是保存时没有文字。保存一些代码后,人们会感到困惑,因为上面没有名字。

如果人们使用“ Wikipedia.com”生成QR码,我希望将其以“ Wikipedia.com”的名称保存在图片库中。我该怎么办?

主要活动

public class MainActivity extends AppCompatActivity {

    private String inputValue;
    private String savePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera/";
    private Bitmap bitmap;
    private QRGEncoder qrgEncoder;
    private ImageView qrImage;
    private EditText edtValue;
    private AppCompatActivity activity;

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

        qrImage = findViewById(R.id.qr_image);
        edtValue = findViewById(R.id.edt_value);
        activity = this;


/**Barcode Generator*/
        findViewById(R.id.generate_barcode).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);
                    qrgEncoder.setColorBlack(Color.BLACK);
                    qrgEncoder.setColorWhite(Color.WHITE);
                    try {
                        bitmap = qrgEncoder.getBitmap();
                        qrImage.setImageBitmap(bitmap);
                    } catch (Exception e) {
                        e.printStackTrace();

                    }
                } else {
                    edtValue.setError(getResources().getString(R.string.value_required));
                }
            }

        });
/**Barcode save*/
        findViewById(R.id.save_barcode).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
                    try {
                        boolean save = new QRGSaver().save(savePath, edtValue.getText().toString().trim(), bitmap, QRGContents.ImageType.IMAGE_JPEG);
                        String result = save ? "Image Saved. Check your gallery." : "Image Not Saved";
                        Toast.makeText(activity, result, Toast.LENGTH_LONG).show();
                        edtValue.setText(null);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                } else {
                    ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
                }
            }
        });
    }
}
卢卡斯·波斯特卡(Lukas Poustka)

我尝试了您的代码,它工作正常。生成的QR码可以按需保存:QR-code-text.jpg

唯一的问题是QRGSaver()。save(...)与Android10 +不兼容。

尽量延长您的onClickListenersave_barcode如下按钮:

/*Barcode save*/
findViewById(R.id.save_barcode).setOnClickListener(v -> {
    String filename = edtValue.getText().toString().trim();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        try {
            ContentResolver resolver = getContentResolver();
            ContentValues contentValues = new ContentValues();
            contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, filename + ".jpg");
            contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpg");
            contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM);
            Uri imageUri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
            OutputStream fos = resolver.openOutputStream(Objects.requireNonNull(imageUri));
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            Objects.requireNonNull(fos).close();
            Toast.makeText(activity, "Image Saved. Check your gallery.", Toast.LENGTH_LONG).show();
            edtValue.setText(null);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
            try {
                boolean save = new QRGSaver().save(savePath, filename, bitmap, QRGContents.ImageType.IMAGE_JPEG);
                String result = save ? "Image Saved. Check your gallery." : "Image Not Saved";
                Toast.makeText(activity, result, Toast.LENGTH_LONG).show();
                edtValue.setText(null);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
        }
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

保存生成的QR码png却收到404 Not Found错误消息

来自分类Dev

轻松生成QR码

来自分类Dev

如何在Swift中从QR码保存vCard

来自分类Dev

zxing QR码库扫描后如何跟踪数据?

来自分类Dev

如何使用CIQRCodeGenerator生成带有徽标的QR码

来自分类Dev

如何生成带有徽标的QR码?

来自分类Dev

如何生成包含联系信息等复杂数据的QR码?

来自分类Dev

Ruby Rails:如何生成不同颜色的QR码图像

来自分类Dev

QR码在#后中断URL

来自分类Dev

CakePHP:下载生成的QR码

来自分类Dev

google QR码未生成

来自分类Dev

在 Swift 4.2 中生成 QR 码并制作 PDF 文件后内存泄漏

来自分类Dev

如何调整QR码大小?

来自分类Dev

如何调整QR码大小?

来自分类Dev

动态QR码如何工作?

来自分类Dev

生成pdf文件后,如何为该pdf保存动态名称?

来自分类Dev

仅使用HTML生成简单的QR码

来自分类Dev

在PDF文件上打印生成的QR码

来自分类Dev

PHP免费QR码生成器

来自分类Dev

生成非常大文件的QR码?

来自分类Dev

仅使用HTML生成简单的QR码

来自分类Dev

用TAB键生成QR码

来自分类Dev

如何在Flutter中扫描QR码后自动打开链接而不单击某些按钮

来自分类Dev

如何为带有金额的比特币地址生成QR码?

来自分类Dev

如何为Google Authenticator生成QR码,以正确显示OTP上方显示的Issuer?

来自分类Dev

如何为Google表单的预填充链接生成QR码

来自分类Dev

如何在PHP中使用自定义字段生成QR码

来自分类Dev

Bing QR码生成器生成哪种类型的QR码

来自分类Dev

保存后如何关闭自动生成js?