複数のピクチャ生成gif図
2892 ワード
png gif , 。 , , 。
private IdentityHashMap pics = new IdentityHashMap();
/**
* gif
*
* @param file_name
* @param delay
*/
private void createGif(String file_name, int delay) {
Bitmap b1 = BitmapUtils.getBitmap(this, "15/1");
Bitmap b2 = BitmapUtils.getBitmap(this, "15/2");
Bitmap b3 = BitmapUtils.getBitmap(this, "15/3");
Bitmap b4 = BitmapUtils.getBitmap(this, "15/4");
Bitmap b5 = BitmapUtils.getBitmap(this, "15/5");
Bitmap b6 = BitmapUtils.getBitmap(this, "15/6");
Bitmap b7 = BitmapUtils.getBitmap(this, "33/7");
Bitmap b8 = BitmapUtils.getBitmap(this, "33/8");
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(b1);
localAnimatedGifEncoder.addFrame(b2);
localAnimatedGifEncoder.addFrame(b3);
localAnimatedGifEncoder.addFrame(b4);
localAnimatedGifEncoder.addFrame(b5);
localAnimatedGifEncoder.addFrame(b6);
// localAnimatedGifEncoder.addFrame(b7);
// localAnimatedGifEncoder.addFrame(b8);
} else {
for (int i = 0; i < pics.size(); i++) {
// Bitmap localBitmap = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(pics.get(i)), 512, 512);
localAnimatedGifEncoder.addFrame(BitmapFactory.decodeFile((String) 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();
LogUtils.e("Gif :");
} catch (IOException e) {
e.printStackTrace();
LogUtils.e("Gif " + e);
}
ivCover.setImageURI(Uri.parse(path));
LogUtils.e("Gif 。 :" + path);
Toast.makeText(MainActivity.this, "Gif 。 :
" + path, Toast.LENGTH_LONG).show();
}