为什么在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吗?
答案 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)