有没有办法同时制作多个视图的动画?
我想做的是翻译动画:
我有5个TextViews和4个彩色条带(带背景的普通RelativeLayouts )。在动画的开始处,stips与TextViews堆叠在水平行中。最后,我希望所有的TextViews都堆叠在条带之间:
这是一幅非常简单的图画,但它演示了我想要做的事情。有没有什么方法可以使用动画,或者我必须使用画布动画。
发布于 2012-02-10 03:47:11
创建动画对象,然后同时在所有视图上共同使用startAnimation
。所以它应该是这样的:
TranslateAnimation anim1;
TranslateAnimation anim2;
TranslateAnimation anim3;
// Setup the animation objects
public void startAnimations()
{
//... collect view objects
view1.startAnimation(anim1);
view2.startAnimation(anim2);
view3.startAnimation(anim3);
}
只需注意,你一次运行的动画越多,速度就会越慢。
发布于 2012-11-22 13:42:30
可以使用ObjectAnimator设置多个视图的动画,如下所示:
ArrayList<ObjectAnimator> arrayListObjectAnimators = new ArrayList<ObjectAnimator>(); //ArrayList of ObjectAnimators
ObjectAnimator animY = ObjectAnimator.ofFloat(view, "y", 100f);
arrayListObjectAnimators.add(animY);
ObjectAnimator animX = ObjectAnimator.ofFloat(view, "x", 0f);
arrayListObjectAnimators.add(animX);
...
ObjectAnimator[] objectAnimators = arrayListObjectAnimators.toArray(new ObjectAnimator[arrayListObjectAnimators.size()]);
AnimatorSet animSetXY = new AnimatorSet();
animSetXY.playTogether(objectAnimators);
animSetXY.setDuration(1000);//1sec
animSetXY.start();
发布于 2017-12-11 16:06:04
您可以使用AnimationSet
AnimatorSet decSet2 = new AnimatorSet();
decSet2.playTogether(
ObjectAnimator.ofFloat(view, "x",dX),
ObjectAnimator.ofFloat(view, "y",dY),
ObjectAnimator.ofFloat(mTextCancel, "x",dX),
ObjectAnimator.ofFloat(mTextCancel, "y", dY),
ObjectAnimator.ofArgb(mBtnOne, "visibility", View.VISIBLE, View.GONE),
);
decSet2.setDuration(0);
decSet2.start();
https://stackoverflow.com/questions/9217305
复制相似问题