lif*_*ger 56
看到这个解决方案
https://github.com/nbadal/android-gif-encoder
这是这篇文章的Android版本.
http://www.jappit.com/blog/2008/12/04/j2me-animated-gif-encoder/
要使用此类,下面是一个生成GIF字节数组的示例辅助方法.请注意,getBitmapArray()函数是一种立即返回图像适配器中所有Bitmap文件的方法.因此输入是一个适配器中的所有Bitmap文件,输出是一个字节数组,您可以写入该文件.
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();
}
Run Code Online (Sandbox Code Playgroud)
要使用此功能,请执行以下操作,然后将文件保存到SD卡中.
FileOutputStream outStream = null;
try{
outStream = new FileOutputStream("/sdcard/generate_gif/test.gif");
outStream.write(generateGIF());
outStream.close();
}catch(Exception e){
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
它对我来说非常好,它可以快速创建文件和高质量的图像
//True for dither. Will need more memory and CPU
AnimatedGIFWriter 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 dimension
writer.prepareForWrite(os, -1, -1)
writer.writeFrame(os, bitmap);
// Keep adding frame here
writer.finishWrite(os);
// And you are done!!!
Run Code Online (Sandbox Code Playgroud)
https://github.com/dragon66/android-gif-animated-writer
归档时间: |
|
查看次数: |
41047 次 |
最近记录: |