Как изменить изображение ImageView после анимации - PullRequest
0 голосов
/ 07 января 2020

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

Вот изображение счетчика:

enter image description here

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

enter image description here

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

enter image description here

Похоже, что изображение меняется, но затем перерисовывается исходное изображение.

Вот моя функция, которая запускает анимация:

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()
}

Как можно предотвратить рисование изображения счетчика поверх изображения с галочкой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...