我有这个foreach循环,可以为四个图像更改图像的来源(在Xamarin Forms应用程序中):
int i = 0;
Device.StartTimer(TimeSpan.FromMilliseconds(50), () =>
{
i ++;
foreach (var img in imgs)
{
img.Source = $"radial{i}.png";
}
if (i == 5)
i = 0;
return true;
});
但结果是四个图像没有同时变化,动画也不平滑。这里的网格分为四个季度,每个季度都有自己的图像视图:
当我使用FromSeconds(1)
代替FromMilliseconds(200)
时,动画变得更加流畅
这些是我使用的图像,当我想画一个完整的圆圈时,我会旋转它们:
答案 0 :(得分:0)
您可以尝试使用System.Collections.Concurrent并使用
调用循环Parallel.ForEach(imgs, img => {
img.Source = $"radial{i}.png";
});
不过,从您要实现的目标来看,我宁愿使用SkiaSharp绘图插件以编程方式创建动画。