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