android – 如何在SD卡中保存GIF图像?

android – 如何在SD卡中保存GIF图像?,第1张

概述我是新的 android,我想通过 android编程保存sdcard中的GIF图像.目前我已经从谷歌做了一些代码来保存SD卡中的GIF图像.但是当我将该图像保存到SD卡时,它将显示正常图像而不是GIF图像. 这是我显示GIF图像的代码 //Save code save.setOnClickListener(new View.OnClickListener() { @Ove 我是新的 android,我想通过 android编程保存sdcard中的gif图像.目前我已经从谷歌做了一些代码来保存SD卡中的gif图像.但是当我将该图像保存到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,url get input stream");            BufferedinputStream bis = new BufferedinputStream(is);            Log.d(TAG,create buffered input stream");            ByteArrayOutputStream baos = new ByteArrayOutputStream();            Log.d(TAG,create buffered array output stream");            byte[] img = new byte[1024];            int current = 0;            Log.d(TAG,write byte to baos");            while ((current = bis.read()) != -1) {                baos.write(current);            }            Log.d(TAG,done write");            Log.d(TAG,create fos");            fileOutputStream fos = new fileOutputStream(file);            fos.write(baos.toByteArray());            Log.d(TAG,write to fos");            fos.flush();            fos.close();            is.close();            Log.d(TAG,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 – 如何在SD卡中保存GIF图像?全部内容,希望文章能够帮你解决android – 如何在SD卡中保存GIF图像?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1122541.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存