在Xamarin中更新图像而不闪烁

时间:2017-04-04 19:44:01

标签: c# xamarin

我想经常从内存更新页面中的图像。我已经测试过直接从资源(闪烁)和预加载的流(闪烁)加载它。这是我的xaml:

<Image Source="{Binding Image}" VerticalOptions="Center" HorizontalOptions="FillAndExpand"/>

这是我的viewmodel:

this.loaderTask = new Task(() =>
        {
            int i = 0;
            while (true)
            {
                await Task.Delay(1000); 
                if (i++ % 2 == 0)
                        this.Image = ImageSource.FromStream(() => new MemoryStream(this.buf1));
                    else
                        this.Image = ImageSource.FromStream(() => new MemoryStream(this.buf2));

                Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
                {
                    this.OnPropertyChanged(nameof(this.Image));
                });
            }
        });

在Android上测试过。我想有一些“标准”方法可以做到这一点吗?

编辑:通过闪烁我的意思是你很快看到图像消失,然后新图像被绘制。我希望快速解决方案是将占位符放在与我想要更新的位置相同的位置,但这也没有帮助,仍然在加载期间获得默认的白色背景。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用WebView?

您可以在Transparent WebView Load Animated Gif (Xamarin Android)

上找到示例