How to create an animated GIF from JPEGs in Android (development)
See this solution.
https://github.com/nbadal/android-gif-encoder
It's an Android version of this post.
http://www.jappit.com/blog/2008/12/04/j2me-animated-gif-encoder/
To use this class, here is an example helper method to generate GIF byte array. Note here the getBitmapArray() function is a method to return all the Bitmap files in an image adapter at once. So the input is all the Bitmap files in one adapter, the output is a byte array which you can write to the file.
public byte[] generateGIF() { ArrayList<Bitmap> bitmaps = adapter.getBitmapArray(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); AnimatedGifEncoder encoder = new AnimatedGifEncoder(); encoder.start(bos); for (Bitmap bitmap : bitmaps) { encoder.addFrame(bitmap); } encoder.finish(); return bos.toByteArray();}
To use this function, do the following then you can save the file into SDcard.
FileOutputStream outStream = null; try{ outStream = new FileOutputStream("/sdcard/generate_gif/test.gif"); outStream.write(generateGIF()); outStream.close(); }catch(Exception e){ e.printStackTrace(); }
It did very well for me, It create file fast and good quality images
//True for dither. Will need more memory and CPUAnimatedGIFWriter writer = new AnimatedGIFWriter(true);OutputStream os = new FileOutputStream("animated.gif");Bitmap bitmap; // Grab the Bitmap whatever way you can// Use -1 for both logical screen width and height to use the first frame dimensionwriter.prepareForWrite(os, -1, -1)writer.writeFrame(os, bitmap);// Keep adding frame herewriter.finishWrite(os);// And you are done!!!