Android中的AnimationSet问题

4
我正在使用AnimationSet来执行一系列的TranslateAnimations。
    icon = (ImageView)findViewById(R.id.icon);

    AnimationSet animationSet = new AnimationSet(true);
    animationSet.setInterpolator(new AccelerateInterpolator());

    TranslateAnimation slide1 = new TranslateAnimation(0, 50, 0, 100); 
    slide1.setStartOffset(0);
    slide1.setDuration(800);
    animationSet.addAnimation(slide1);

    TranslateAnimation slide2 = new TranslateAnimation(50, 100, 100, -100); 
    slide2.setStartOffset(1000);
    slide2.setDuration(800);
    animationSet.addAnimation(slide2);
....

    animationSet.setFillAfter(true);
    icon.startAnimation(animationSet);

我的问题是动画非常卡顿。第一个动画出现得非常突兀,然后第二个开始。我该如何使其平滑且连贯?

2个回答

5

创建用于动画的XML文件并尝试使用它。

            AnimationSet animSet = new AnimationSet(false);
    Animation AnimFirst = AnimationUtils.loadAnimation(act, R.anim.first);
    Animation rAnimSecond = AnimationUtils.loadAnimation(act, R.anim.second);
    animSet.addAnimation(AnimFirst);
    animSet.addAnimation(AnimSecond);
    animSet.setInterpolator(new AccelerateDecelerateInterpolator());
    icon.clearAnimation();
    animSet.setFillAfter(true);
    icon.startAnimation(animSet);

animFirst.xml

       <set xmlns:android="http://schemas.android.com/apk/res/android">
   <translate android:fromYDelta="100%" android:toXDelta="0"
    android:duration="2000" android:fillAfter="true" />
      </set>

您可以随意更改数值。


你能给我展示一下 XML 的基本结构吗?我尝试在 res/anim 下创建一个文件,但是出现了“此行发现多个注释”的错误提示。 - Dave Morris

0
尝试使用更长的动画持续时间(≥ 1500)。

如果UI动画持续时间过长,尤其是在您的应用程序中频繁出现,用户会感到非常烦恼。Android设计指南建议根据动画类型,小型UI动画的理想长度为300毫秒。 - Mark Buikema

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接