如何从设备文件夹中检索和共享位图



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

我目前不担心共享功能。我想找出如何检索文件以共享文件。

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

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(){}

就像您之前提到的那样,您必须将此大方法分为2个小方法。

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

最新更新