Я делаю простой компонент представления Загрузка блесны, который имеет два изображения. Первое изображение - это счетчик, который должен показываться и вращаться, пока компонент «загружается». Второе изображение - это галочка, которая должна отображаться без анимации после завершения «загрузки». Я хотел бы использовать один ImageView и просто поменять объект изображения при необходимости.
Вот изображение счетчика:

И вот изображение галочки:

Я написал функцию, чтобы остановить анимацию и заменить изображение, но когда я вызываю его, это то, что я вижу:

Похоже, что изображение меняется, но затем перерисовывается исходное изображение.
Вот моя функция, которая запускает анимация:
fun show() {
rotateAnimation = RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f)
rotateAnimation!!.duration = 900
rotateAnimation!!.repeatCount = Animation.INFINITE
rotateAnimation!!.fillAfter = true
mLoaderView.startAnimation(rotateAnimation)
}
А вот моя функция, которая останавливает анимацию и изменяет изображение:
private fun completeLoading() {
rotateAnimation!!.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(p0: Animation?) {
// not implemented
}
override fun onAnimationRepeat(p0: Animation?) {
// not implemented
}
override fun onAnimationEnd(p0: Animation?) {
mLoaderView.setBackgroundDrawable(Util.getLocalDrawable(mLoaderView.context, "icn_loading_error"))
}
})
mLoaderView.clearAnimation()
}
Как можно предотвратить рисование изображения счетчика поверх изображения с галочкой?