Я пытаюсь добавить анимированный GIF в качестве стикера, все работает нормально, но всякий раз, когда я изменяю цвет холста с помощью приведенного ниже кода, анимированный GIF перестает анимироваться, и для его повторной анимации мне нужно переместить его Canvas или я вызываю drawable.setCallBack()
метод
ColorDrawable cd = new ColorDrawable(selectedColor);
img.setImageDrawable(cd);
Bitmap bitmap = Bitmap.createBitmap(originalImage.getWidth(), originalImage.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
cd.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
cd.draw(canvas);
, чтобы снова оживить его, мне нужно вызывать этот метод каждый раз
drawable.setCallback(new Drawable.Callback() {
@Override
public void invalidateDrawable(@NonNull Drawable who) {
stickerView.invalidate();
}
@Override
public void scheduleDrawable(@NonNull Drawable who, @NonNull Runnable what, long when) {
new Handler().postAtTime(what, who, when);
}
@Override
public void unscheduleDrawable(@NonNull Drawable who, @NonNull Runnable what) {
//stickerView.removeCallbacks(what);
}
});
Есть ли способ, чтобы оживить все время без вызова setCallback
метода invalidate
каждый раз,