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

问题描述 投票:0回答:1

我想在特定的时间延迟后在画布上画一条路径,我已经检查了这个链接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);
      }

}
android xamarin.android android-animation android-canvas skiasharp
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.