Я пытаюсь сгенерировать файл GIF из array
из bitmaps
, приведенный ниже код работает нормально, но иногда (в зависимости от количества кадров в GIF и от того, сколько стикеров GIF выходит на холст) захваченные bitmap
будут повреждены, как показано ниже
только наклейка GIF:
![image](https://live.staticflickr.com/65535/49793710153_2e3062e4fc_o.gif)
После добавления фона и захвата всего холста ( с GIF-стикер )
![image](https://i.imgur.com/xgAl8BZ.gif)
Вот мой код, я попытался замедлить GIF-стикер, чтобы процесс создания bitmap
занял время до конца sh, но это не работает:
for (int i = 0; i < getBaseGIF().getFrameCount(); i++) {
try {
TimeUnit.MILLISECONDS.sleep(getBaseGIF().getDelay().get(i) * 8);
} catch (InterruptedException e) {
e.printStackTrace();
}
bitmapArrayList.add(getFinalBitmap());
publishProgress(0, (int) (((i + 1) / (float) getBaseGIF().getFrameCount()) * 100));
}
Получение растрового изображения:
public Bitmap getFinalBitmap() {
handlingSticker = null;
Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
this.draw(canvas);
return bitmap;
}