Похоже, вы звоните Thread.Sleep из потока пользовательского интерфейса.В конечном итоге это приведет к зависанию всего пользовательского интерфейса на время сна.То, что вы действительно хотите, это запустить сон из фонового потока.
Например:
AsyncTask.execute(new Runnable() {
@Override
public void run() {
for(int i=0; i < buttons.size();i++)
{
try {
Thread.sleep(1000);
activity.runOnUiThread(new Runnable() {
buttons.get(i).startAnimation(animation);
});
} catch (Exception e){}
}
});
Другой способ сделать это с помощью задержки после сообщения:
new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
buttons.get(i).startAnimation(animation);
new android.os.Handler().postDelayed(this, 1000);
}
},
1000);