我正在尝试为片段中的imageview设置动画。我尝试通过创建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。这与我在片段内设置动画的事实有关吗?因为我已经在活动中制作了动画,所以效果很好。
如果将堆栈跟踪(Log)与代码一起添加,将很有帮助。