Анимация вида во фрагменте - PullRequest
0 голосов
/ 28 января 2020

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

class WelcomeFragment : Fragment() {

private lateinit var binding: FragmentWelcomeBinding
private lateinit var zoomAnimation: Animation
private lateinit var turnedOffStar: ImageView

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                         savedInstanceState: Bundle?): View? {
    binding = DataBindingUtil.inflate(
        inflater,
        R.layout.fragment_welcome,
        container,
        false
    )
    binding.turnedOffStarButton.setOnClickListener { v: View ->

    }
    scaler()
    zoomAnimation()
    return binding.root
}


private fun zoomAnimation() {
    zoomAnimation = AnimationUtils.loadAnimation(activity?.baseContext,R.anim.zoom_undonestar)
    turnedOffStar.startAnimation(zoomAnimation)
}

private fun scaler() {
    val scaleX = PropertyValuesHolder.ofFloat(View.SCALE_X, 0.3F)
    val scaleY = PropertyValuesHolder.ofFloat(View.SCALE_Y, 0.3F)
    val animator: ObjectAnimator = ObjectAnimator.ofPropertyValuesHolder(turnedOffStar, scaleX, scaleY)
    animator.repeatCount = INFINITE
    animator.repeatMode = ObjectAnimator.REVERSE
    animator.start()
}

}

Сначала я пытался использовать весело zoomAnimation, после веселья скалер. Это как-то связано с тем, что я анимирую внутри фрагмента? Потому что я уже делал анимацию внутри действия, и она работала нормально.

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Ваш ImageView turnedOffStar нигде не инициализирован. Поскольку вы уже используете привязку данных, вы должны ссылаться на свои представления, используя их Таким образом, вы должны ссылаться на ваше изображение, например: binding.turnedOffStar.startAnimation()

0 голосов
/ 28 января 2020

Было бы полезно, если вы добавите трассировку стека (Log) вместе с вашим кодом.

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