Позвольте мне объяснить. У меня есть эти 4 кнопки (2 статических цикла и 2 анимации перехода). Поначалу все идет гладко, кроме одного. После 4 взаимодействий с кнопкой включения/выключения в пятый раз вы можете увидеть, как я думаю, последний кадр анимации перехода очень коротко мерцает. Первые 4 раза такого не происходит. Эти gif-изображения были предварительно загружены в мою функцию onCreate. (Я опубликую соответствующие фрагменты своего кода)
Код: Выделить всё
private lateinit var offButton: ImageView
private lateinit var onButton: ImageView
private lateinit var offToOnButton: ImageView
private lateinit var onToOffButton: ImageView
private fun preloadGifs() {
Glide.with(this).asGif().load(R.drawable.off_to_on_button).preload()
Glide.with(this).asGif().load(R.drawable.on_to_off_button).preload()
Glide.with(this).asGif().load(R.drawable.on_button).preload()
Glide.with(this).asGif().load(R.drawable.off_button).preload()
}
Код: Выделить всё
private fun resetState() {
// Remove all callbacks and messages to ensure no pending handlers interfere
Handler(Looper.getMainLooper()).removeCallbacksAndMessages(null)
// Clear the two problematic gifs.
Glide.with(this).clear(offToOnButton)
Glide.with(this).clear(onToOffButton)
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... y-clearing
Мобильная версия