【问题标题】:How to retrieve & share bitmap from device folder如何从设备文件夹中检索和共享位图
【发布时间】:2019-03-13 07:22:16
【问题描述】:

我正在构建一个模因生成器应用程序。到目前为止,该应用程序完成了我需要做的所有事情,但我想再添加 1 个功能。该应用程序将 meme 保存为我的设备上的 bitmap。我想添加一个功能,如果用户希望在 Facebook、Twitter、IG 等上分享 meme,应用程序会检索相同的位图(刚刚创建)。

我暂时不担心分享功能。我想了解如何检索文件以便能够共享它。

这是创建和保存 meme 的方法。我将省略不必要的代码:

public void createBitmapAndSave(ImageView img) {

        ...

        counter++;

        File file;
        Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

        String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath();
        file = new File(path + "/SimpliMeme/" + timeStamp + "-" + counter + ".jpg");
        file.getParentFile().mkdir();

        try {
            OutputStream stream = new FileOutputStream(file);
            mutableBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
            stream.flush();
            stream.close();
            Toast.makeText(getContext(), "Top Text: " + String.valueOf(topTextMeasurement) + " and bottom text: " + String.valueOf(bottomTextMeasurement),
                    Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
        }

        Uri contentUri = Uri.fromFile(file);
        mediaScanIntent.setData(contentUri);
        Objects.requireNonNull(getContext()).sendBroadcast(mediaScanIntent);
    }

我创建了一个空方法,当用户点击“分享”按钮时需要调用它:

public void shareMeme(){}

【问题讨论】:

  • 您是否想知道如何从您的设备中获取保存的图像?
  • 是的,但是是刚刚创建并保存的特定图像。
  • 我可以看到代码,每次您将图像保存在文件夹中时,它都有不同的名称。你想以不同的方式保存每张图片,还是可以用相同的名称覆盖之前的一张。
  • 我不明白你的意思。我给每张图片一个不同的名字。不是“图像”。每次创建一个新 meme 或为同一个 meme 点击两次保存按钮时,应用都会为每个 meme 创建新名称。
  • 如果你想从保存的图像中获取最新的图像,那么你应该用时间戳命名图像,以便你可以转换它并比较日期时间对象。

标签: java android bitmap inputstream outputstream


【解决方案1】:

就像你之前提到的,你要把这个大方法分成两个小方法。

就您最初的问题而言:返回您的设备只是为了查找并获取同一张照片是没有意义的。将方法分成2个方法(例如createBitmap() & saveBitmap()),如果用户只是想分享而不保存到设备,应用程序将调用createBitmap()方法只创建位图和然后您将在即将到来的共享功能中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    相关资源
    最近更新 更多