Я не очень опытен в Android-программировании, поэтому у меня возникла проблема, когда я хочу анимировать до arraySize(). Но цикл повторяется только один раз. Фактически мне нужна анимация приложений, где каждое приложение запускается анимированным после случайного времени задержки. Для лучшего понимания я здесь Проводка моего подробного кода. Я принимаю эту проблему за 2 дня и не могу найти решение, поэтому я решил разместить здесь.Для Loop is Iterating Once, когда значение i = lastSize
@Override
public void onAnimationEnd(Animation animation) {
Animation cout = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.optimization);
fan_bg.setAnimation(cout);
animateprogress(mHoloCircularProgressBar);//b8=b7+1;
int remainder = ramOptimizeArrayList.size()/8;
int b = 0;
for (int i=0;i<= remainder;i++) {
b = b + 1;
top.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
b = b + 1;
top_left.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
b = b + 1;
top_right.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
b = b + 1;
left.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
b = b + 1;
right.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
b = b + 1;
bottom.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
b = b + 1;
bottom_left.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
b = b + 1;
bottom_right.setImageDrawable(ramOptimizeArrayList.get(b).getIconlink2());
Runnable runnable = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
top_right.startAnimation(top_left_anim);
}
});
}
};
Handler handler1 = new Handler();
handler1.postDelayed(runnable, 100);
Runnable runnable2 = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
top.startAnimation(top_anim);
}
});
}
};
Handler handler3 = new Handler();
handler3.postDelayed(runnable2, 50);
Runnable runnable4 = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
top_left.startAnimation(top_right_anim);
}
});
}
};
Handler handler4 = new Handler();
handler4.postDelayed(runnable4, 200);
Runnable runnable5 = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
left.startAnimation(left_anim);
}
});
}
};
Handler handler5 = new Handler();
handler5.postDelayed(runnable5, 500);
Runnable runnable6 = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
right.startAnimation(right_anim);
}
});
}
};
Handler handler6 = new Handler();
handler6.postDelayed(runnable6, 300);
Runnable runnable7 = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
bottom_left.startAnimation(bottom_left_anim);
}
});
}
};
Handler handler7 = new Handler();
handler7.postDelayed(runnable7, 600);
Runnable runnable8 = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
bottom.startAnimation(bottom_anim);
}
});
}
};
Handler handler8 = new Handler();
handler8.postDelayed(runnable8, 350);
Runnable runnable9 = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
bottom_right.startAnimation(bottom_right_anim);
}
});
}
};
Handler handler9 = new Handler();
handler9.postDelayed(runnable9, 650);
}
/*top.startAnimation(top_anim);
top_left.startAnimation(top_right_anim);
left.startAnimation(left_anim);
right.startAnimation(right_anim);
bottom_left.startAnimation(bottom_left_anim);
bottom.startAnimation(bottom_anim);
bottom_right.startAnimation(bottom_right_anim);*/
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
Почему все 'B = B + 1' линии? Похоже, это должен быть цикл. –
Аналогично, каждое имя переменной, которое заканчивается номером, указывает, что вы должны использовать структуру цикла. –
Не обижайтесь, но вам нужен серьезный рефакторинг кода :) – shadygoneinsane