【发布时间】:2018-12-19 23:48:34
【问题描述】:
我是新的 android,我想通过 android 编程将 GIF 图像保存在 sdcard 中。目前我已经从谷歌完成了一些代码来将 GIF 图像保存在 sdcard 中。但是当我将该图像保存到 sdcard 时,它将显示普通图像而不是 GIF 图像。
这是我显示 GIF 图片的代码
//Save code
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bitmap image = BitmapFactory.decodeResource(getResources(),
R.drawable.gpp3);
File outputFile = new File("/sdcard/gpp3.gif");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(outputFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (fos != null) {
AnimatedGifEncoder gifEncoder = new AnimatedGifEncoder();
gifEncoder.start(fos);
gifEncoder.addFrame(image);
gifEncoder.finish();
}
}
});
那么,上面的代码有什么问题。请告诉我。
【问题讨论】:
-
完全不要使用 BitmapFactory。不要使用 AnimatedGiffEncoder。我想你已经在drawables中有一个gif图像。所以只需将其复制到文件系统即可。
-
@greenapps 当我使用你的方式时,它将显示 .jpg 扩展名,图像为 .gif
-
@greenapps 查看我的更改gist.github.com/anonymous/a9dbd1b342356b6b18a395925d80e636
-
when i using your way it will display .jpg extension and image is .gif???不可能的。那不是我的方式!因为是您决定文件名。当然,您不应该先转换为 Drawable 或 Bitmap。或使用 MediaStore。您还应该在此处发布您的代码。我在第一条评论中告诉你的是将字节数组从资源直接保存到文件中。从您的资源中打开 InputStream 并复制到 FileOutputStream。
标签: android