android使用多张图片合成gif文件

发布时间:2019-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了android使用多张图片合成gif文件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

之前有遇到过一个要用多张图片合成gif图的场景,当时是搜索了好久,也没有发现有相关的使用记录。后来找到了实现方式,特此记录。
使用了GIThub上该PRoject:android-gif-encoder,代码链接见页尾。

主要代码如下:

/**
 * 生成gif图
 *
 * @param file_name 保存文件名
 * @param delay     帧之间间隔的时间
 */
private void createGif(String file_name, int delay) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    AnimatedGifEncoder localAnimatedGifEncoder = new AnimatedGifEncoder();
    localAnimatedGifEncoder.start(baos);//start
    localAnimatedGifEncoder.setRepeat(0);//设置生成gif的开始播放时间。0为立即开始播放
    localAnimatedGifEncoder.setDelay(delay);
    if (pics.isEmpty()) {
        localAnimatedGifEncoder.addFrame(BitmapFactory.decodeResource(getResources(), R.drawable.pic_1));
        localAnimatedGifEncoder.addFrame(BitmapFactory.decodeResource(getResources(), R.drawable.pic_2));
        localAnimatedGifEncoder.addFrame(BitmapFactory.decodeResource(getResources(), R.drawable.pic_3));
    } else {
        for (int i = 0; i < pics.size(); i++) {
            // Bitmap localBitmap = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(pics.get(i)), 512, 512);
            localAnimatedGifEncoder.addFrame(BitmapFactory.decodeFile(pics.get(i)));
        }
    }
    localAnimatedGifEncoder.finish();//finish

    File file = new File(environment.getExternalStorageDirectory().getPath() + "/GIFMakerDemo");
    if (!file.exists()) file.mkdir();
    String path = Environment.getExternalStorageDirectory().getPath() + "/GIFMakerDemo/" + file_name + ".gif";
    LOG.d(TAG, "createGif: ---->" + path);

    try {
        FileOutputStream fos = new FileOutputStream(path);
        baos.writeTo(fos);
        baos.flush();
        fos.flush();
        baos.close();
        fos.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    gif_image.setImageURI(Uri.parse(path));
    Toast.makeText(MainActivity.this, "Gif已生成。保存路径:n" + path, Toast.LENGTH_LONG).show();
}

android使用多张图片合成gif文件

需要码的同学这里

脚本宝典总结

以上是脚本宝典为你收集整理的android使用多张图片合成gif文件全部内容,希望文章能够帮你解决android使用多张图片合成gif文件所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。