在特定的时间延迟后如何在画布上绘制路径?

时间:2019-04-23 16:13:57

标签: android xamarin.android android-animation android-canvas skiasharp

我想在特定的时间延迟后在画布上绘制路径,我已经检查了此链接Draw a Path as animation on canvas ,但是它不能解释我正在寻找的问题。

我只想拖延一条路径。

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 :(得分:0)

您可以在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);