我正在尝试做一个类似于 iPhone coverflow 的动画师,但更简单一点。 现在我尝试进行旋转,然后使图像全屏显示,但什么也没有发生。
ImageView i = (ImageView) FindViewById(args.Position);
var disp = WindowManager.DefaultDisplay;
var height = disp.Height;
var width = disp.Width;
ObjectAnimator anim = ObjectAnimator.OfInt(i, "rotationY", 0, 180);
ObjectAnimator scaleX = ObjectAnimator.OfInt(i, "scaleX", width);
ObjectAnimator scaleY = ObjectAnimator.OfInt(i, "scaleY", height);
AnimatorSet set = new AnimatorSet();
set.Play(anim).With(scaleX).With(scaleY);
代码有什么问题吗?为什么什么也没发生?
最佳答案
您需要调用 Start()
在您的AnimatorSet
上真正开始动画。
Play()
方法实际上并不播放动画 - 它指定该集应该播放的动画并创建一个 AnimatorSet.Builder
您可以使用它来设置其他约束(例如您的 With()
)。
其次,您的 ObjectAnimators 都在寻找整数属性,但 rotation和 scale属性需要 float 。
您应该使用ObjectAnimator.OfFloat()
相反。
关于Android 动画集不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701987/