这是我的xml代码:
<?xml version="1.0" encoding="utf-8"?>
机器人:repeatCount =&#34;无限&#34;&GT;
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="10"
android:toXDelta="500"
android:fillAfter="true"
android:duration="1000"
>
</translate>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="500"
android:toXDelta="10"
android:duration="1000"
android:fillBefore="true"
android:startOffset="2000"
>
</translate>
这是java代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page1);
cloud2 = (ImageView) findViewById(R.id.cloud2);
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.clouds_animation);
cloud2.startAnimation(animation);
animation.setRepeatCount(Animation.INFINITE);
我已经尝试过了
我做错了什么?
答案 0 :(得分:1)
而不是在xml文件中做2个动画,我用这种方式解决了这个问题:
TranslateAnimation cloud_moving = new TranslateAnimation(
Animation.ABSOLUTE, 1450,
Animation.ABSOLUTE, 10,
Animation.ABSOLUTE, 0,
Animation.ABSOLUTE, 0
);
cloud_moving.setDuration(6000);
cloud_moving.setFillAfter(true);
cloud_moving.setStartOffset(1000);
cloud_moving.setRepeatCount(Animation.INFINITE);
cloud_moving.setRepeatMode(Animation.REVERSE);
cloud2.startAnimation(cloud_moving);
显然,xml等效动画不仅仅是源代码,编码起来效果更好! 来自文档:如果你将重复计数设置为无限并将重复模式设置为反转 - 它将“镜像”自身,即图像将从一侧移动到另一侧,并且不要忘记将填充后设置为真 - 图像动画完成后,它将留在原地......