嘿伙计们,我正在使用翻译动画,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="0%"
android:fromYDelta="-150"
android:toYDelta="125%p"
android:duration="4500"/>
现在它工作正常,除了它在动画时似乎闪烁/混蛋?这是标准吗?
我确实有6个不同的视图同时动画,这是什么原因?
这就是我设置动画的方式:
// Create animation for image
for(x = 0; x < 6; x++){
this.movement[x] = AnimationUtils.loadAnimation(this, R.layout.animation_test);
this.movement[x].reset();
this.movement[x].setRepeatCount(Animation.INFINITE);
this.movement[x].setRepeatMode(Animation.RESTART);
this.movement[x].setStartOffset(x * 1250);
this.movement[x].setAnimationListener(this);
}
// Create Droplet Layout
for(x = 0; x < 6; x++){
this.mDropletLayout[x] = new LinearLayout(this);
// Randomize
final long rnd = Math.round(Math.random() * 480);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.leftMargin = (int) rnd;
this.mLayout[x].setLayoutParams(params);
}
this.mLayout[0].setBackgroundResource(R.drawable._1);
this.mLayout[1].setBackgroundResource(R.drawable._2);
this.mLayout[2].setBackgroundResource(R.drawable._3);
this.mLayout[3].setBackgroundResource(R.drawable._4);
this.mLayout[4].setBackgroundResource(R.drawable._5);
this.mLayout[5].setBackgroundResource(R.drawable._6);
// Attach
for(x = 0; x < 6; x++){
// Attach Animation
this.mLayout[x].startAnimation(this.movement[x]);
// Attach
this.mBackgroundView.addView(this.mLayout[x]);
}
现在我在这里遗漏了一些东西,因为动画实际上看起来像垃圾......?
答案 0 :(得分:1)
如果多个动画出现问题,那么由于您将所有子View
放入更大的封闭View
中,如果没有其他动画,请在整个mBackgroundView
上运行动画应该是静止的孩子。否则,将View
添加到mBackgroundView
,其中包含所有需要动画的内容。然后,您可以将动画应用于中间View
。
编辑:我发现你与AnimationUtils
制作了6个完全相同的动画。根据我的理解,您可以只使用一个视图。
编辑2:在执行addView
之后尝试启动动画,而不是之前。