【发布时间】: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