将位图保存到本地存储并同时上传到Firebase

时间:2018-01-23 04:22:44

标签: android bitmap

我创建了一个可以生成qrcode的应用程序。我的问题是,是否可以同时将生成的位图保存在手机存储和firebase中。任何帮助都将不胜感激。

我生成qr代码的代码:

gen_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ObtainText = Text.getText().toString().trim();
            MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
            try {
                BitMatrix bitMatrix = multiFormatWriter.encode(Text.getText().toString(), BarcodeFormat.QR_CODE, 200, 200);
                BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
                Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
                image.setImageBitmap(bitmap);

            } catch (WriterException e) {

                e.printStackTrace();
            }
        }
    }) ;

我的想法:

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,永远不要在UI线程中处理位图操作和其他相同的繁重操作。您应该异步处理它或在服务线程中处理它。

为了将此位图保存在本地存储中,您可以使用缓存目录或外部存储。

Save bitmap to location

您可以使用相同的线程将文件上传到Firebase存储中(它也可以在另一个单独的线程中处理)。

https://firebase.google.com/docs/storage/android/upload-files