【发布时间】:2018-05-16 07:13:54
【问题描述】:
我有这个 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)时,动画变得更加流畅
这些是我使用的图像,当我想画一个完整的圆时我会旋转它们:
【问题讨论】:
-
你不想等待 1 秒?
-
请更新您的帖子以显示每张图片,以便我们了解动画应该的样子。
-
我用图片更新了它
-
为什么把图片分成四等份?为什么不只使用一张图片?
-
您需要一个同时绘制四个位图的解决方案。在不了解底层技术的情况下,我根本不相信这是可能的。渲染本质上是单线程的,因此每个图像将始终一个接一个地绘制。在计算机游戏和其他类似应用程序中,您使用后台缓冲区来合成新图像,然后将其 blit 到屏幕上以解决此问题,但这对于您正在尝试做的事情似乎有点过头了。
标签: c# foreach xamarin.forms