gpt4 book ai didi

android - 如何将GIF图片保存到SD卡中?

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:20 25 4
gpt4 key购买 nike

我是android新手,想通过android编程将GIF图片保存到sdcard中。目前我已经从谷歌做了一些代码来将 GIF 图像保存在 sdcard 中。但是当我将该图像保存到 SD 卡时,它将显示普通图像而不是 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();
}

}
});

所以,上面的代码有什么问题,请告诉我。

最佳答案

我不确定,但根据你的要求,你应该先打开你的 GIF,然后在你转换成字节数组之后保存它。我希望你能得到你的解决方案

private void saveGIF()
{
try
{
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "shared_gif_shai" + System.currentTimeMillis() + ".gif");

long startTime = System.currentTimeMillis();

Log.d(TAG, "on do in background, url open connection");

InputStream is = getResources().openRawResource(R.drawable.g);
Log.d(TAG, "on do in background, url get input stream");
BufferedInputStream bis = new BufferedInputStream(is);
Log.d(TAG, "on do in background, create buffered input stream");

ByteArrayOutputStream baos = new ByteArrayOutputStream();
Log.d(TAG, "on do in background, create buffered array output stream");

byte[] img = new byte[1024];

int current = 0;

Log.d(TAG, "on do in background, write byte to baos");
while ((current = bis.read()) != -1) {
baos.write(current);
}


Log.d(TAG, "on do in background, done write");

Log.d(TAG, "on do in background, create fos");
FileOutputStream fos = new FileOutputStream(file);
fos.write(baos.toByteArray());

Log.d(TAG, "on do in background, write to fos");
fos.flush();

fos.close();
is.close();
Log.d(TAG, "on do in background, done write to fos");
}
catch (Exception e) {
e.printStackTrace();
}
}

并且还在你的 AndroidMenifest.xml 文件中授予此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

关于android - 如何将GIF图片保存到SD卡中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39826400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com