如何将.GIF文件保存到图库?

时间:2017-11-07 23:01:33

标签: java android gallery gif

为什么在Android中这么难做?我知道图像容易,但为什么不.gifs?

我这里有这个代码将它保存到SD卡,但我试图说明没有SD卡的用户。

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/dir1/dir2");
dir.mkdirs();
File file = new File(dir, "GIFName_" + System.currentTimeMillis() +".gif");

try {
    FileOutputStream f = new FileOutputStream(file);
    f.write(generateGIF(list));

} catch(Exception e) {
    e.printStackTrace();
}

我的应用程序基本上将图像转换为.GIFS,现在它将其保存在SD卡上,但我想将其保存到图库中。有没有办法轻松做到这一点?我知道你可以为图像做到这一点,但你可以为创建的.GIFS吗?

1 个答案:

答案 0 :(得分:1)

Gallery到底是什么意思?没有名为Gallery的目录。但是有一个名为Gallery的应用程序,我希望这就是你的意思。

Environment.getExternalStorageDirectory()将返回外部存储的根路径。这与您尝试保存的文件无关。如果要保存到Pictures目录,则可以执行Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)

Gallery是android中的一个应用程序,它扫描整个系统并将所有媒体项添加到其中。如果您尝试在Android中以编程方式保存文件.gif.jpg.png,则无法保证Gallery立即获取该文件。这就是你需要使用MediaScannerConnection的原因。这将允许您添加新创建的文件以显示在Gallery中。

如下所示:

MediaScannerConnection.scanFile(context, new String[]{file.getAbsolutePath()}, null, null);

文档:https://developer.android.com/reference/android/media/MediaScannerConnection.html#scanFile(java.lang.String,java.lang.String)