我正在使用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);
Run Code Online (Sandbox Code Playgroud)
我的问题是动画非常生涩.第一个动画突然发生,然后第二个动画开始.我怎样才能让它变得平滑均匀?
创建动画的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);
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
你必须改变任何你想要的价值..
| 归档时间: |
|
| 查看次数: |
5563 次 |
| 最近记录: |