Рисование блоков с задержкой между появлением каждого.
Добавлено: 14 мар 2015, 13:16
Есть функция, рисующая все фигуры на экране
Нужно каждый квадрат рисовать по очереди с интервалом 0.5 сек.
Делаю так
Но 3 блока рисуются вместе после задержки в 1.5 сек.
Тогда, подумал, нужно перерисосывать после каждой задержки.
Сделал так
Но 3 блока так же рисуются вместе после задержки в 1.5 сек.
Как сделать появление блоков по очереди с задержкой между каждым 0.5 сек?
Код: Выделить всё
protected void onDraw(Canvas canvas) {
if (...) {
canvas.drawRect(100, 100, 200, 200, p);
canvas.drawRect(100, 300, 200, 400, p);
canvas.drawRect(100, 500, 200, 600, p);
}
}
Делаю так
Код: Выделить всё
if (...) {
epoch[0] = System.currentTimeMillis()+500;
while (System.currentTimeMillis() <= epoch[0]) {
}
canvas.drawRect(100, 100, 200, 200, p);
epoch[1] = System.currentTimeMillis()+500;
while (System.currentTimeMillis() <= epoch[1]) {
}
canvas.drawRect(100, 300, 200, 400, p);
epoch[2] = System.currentTimeMillis()+500;
while (System.currentTimeMillis() <= epoch[2]) {
}
canvas.drawRect(100, 500, 200, 600, p);
}
Тогда, подумал, нужно перерисосывать после каждой задержки.
Сделал так
Код: Выделить всё
if (...) {
epoch[0] = System.currentTimeMillis()+500;
while (System.currentTimeMillis() <= epoch[0]) {
}
canvas.drawRect(100, 100, 200, 200, p);
invalidate();
epoch[1] = System.currentTimeMillis()+500;
while (System.currentTimeMillis() <= epoch[1]) {
}
canvas.drawRect(100, 300, 200, 400, p);
invalidate();
epoch[2] = System.currentTimeMillis()+500;
while (System.currentTimeMillis() <= epoch[2]) {
}
canvas.drawRect(100, 500, 200, 600, p);
invalidate();
}
Как сделать появление блоков по очереди с задержкой между каждым 0.5 сек?