每次按下按钮时,我都会尝试使用ViewPropertyAnimator缩放视图(不确定的ProgressBar).
loadingCircle.animate().scaleY(1.5f).scaleX(1.5f).setDuration(100f);
我有一个animatorListener可以在onAnimationEnd上缩放回正常:
loadingCircle.animate().scaleY(1.0f).scaleX(1.0f).setDuration(100f);
没什么太复杂的.但是,它似乎并不总是同时缩放x和y.
通常它第一次就是正确的,有时是第二次.
如果它不起作用,它只会动画链中的最后一个操作.如果它是scaleX,它只会缩放X.如果我交换它,它只会缩放Y.
scaleX和scaleY的文档说:
Animations already running on the property will be canceled
但是,我认为ViewPropertyAnimator能够被链接,并且此注释仅适用于新动画(在不同的代码行上).我做错了什么,或者我发现了一个错误?
我在GalaxyS4上运行Android 4.2.2.股票ROM,但根深蒂固.如果这有所作为.
解决方法
我相信这确实是一个错误.我通过使用ObjectAnimator而不是ViewPropertyAnimator来解决这个问题,以获得相同的结果.那么,你的看起来像是这样的:
ObjectAnimator animX = ObjectAnimator.ofFloat(loadingCircle,"scaleX",1.0f); ObjectAnimator animY = ObjectAnimator.ofFloat(loadingCircle,"scaleY",1.0f); AnimatorSet animSetXY = new AnimatorSet(); animSetXY.playTogether(animX,animY); animSetXY.start();
资料来源:http://developer.android.com/guide/topics/graphics/prop-animation.html#view-prop-animator