Перевести Анимация кажется действительно дрянной - PullRequest
1 голос
/ 20 августа 2011

Эй, ребята, я использую анимацию перевода, как показано здесь:

<?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]);
}

Теперь я что-то здесь упускаю, потому что анимация на самом деле выглядит для меня дерьмом ..?

1 Ответ

1 голос
/ 20 августа 2011

Если возникает проблема с несколькими анимациями, то, поскольку вы помещаете все дочерние элементы View в большее View, запустите анимацию для всего mBackgroundView, если у него нет других дочерних элементов, которые должны быть стационарными. В противном случае добавьте промежуточное значение View к mBackgroundView, содержащее все те, которые нуждаются в анимации. Тогда вы можете просто применить анимацию к промежуточному View.

Редактировать: я заметил, что вы делаете 6 одинаковых анимаций с AnimationUtils. Насколько я понимаю, вы можете использовать один для всех видов.

Редактировать 2: Попробуйте запустить анимацию после того, как вы выполните addView, а не раньше.

...