Как нарисовать путь на холсте после определенной задержки? - PullRequest
0 голосов
/ 23 апреля 2019

Я хочу нарисовать путь на холсте после определенной задержки, я проверил эту ссылку Нарисовать путь как анимацию на холсте , но это не объясняет проблему, которую я ищу.

Мне просто нужна задержка, прежде чем я нарисую путь.

private void OnPainSurface(object sender, SKPaintSurfaceEventArgs args)
 {
      canvas = args.Surface.Canvas;
      canvas.Clear();


      foreach (SKPath path in inProgressPaths.Values)
      {
           //Delay before drawing a path, ex: 5 seconds
           canvas.DrawPath(path, paint);
      }

}

1 Ответ

0 голосов
/ 23 апреля 2019

Вы можете использовать postInvalidateDelayed метод для View

В вашем примере это будет

foreach (SKPath path in inProgressPaths.Values)
  {
       //Delay before drawing a path, ex: 5 seconds
       TimeUnit.SECONDS.sleep(5);
       canvas.DrawPath(path, paint);
  }

РЕДАКТИРОВАТЬ

Выможно просто использовать Handler, чтобы задать задержку в каждой итерации, в Kotlin это делается так:

Handler().postDelayed({
    canvas.DrawPath(path, paint);
}, 5000)

РЕДАКТИРОВАТЬ 2

Вы можете попробовать это

Handler handler = new Handler();
Action action = () => 
{
   canvas.DrawPath(path, paint);
};

handler.postDelayed(action, 5000);
...