如何通过ffimageloading

时间:2019-09-18 12:23:37

标签: c# xamarin svg ffimageloading

我们想用svg图片替换移动应用中的所有图片。 图像正在运行,但是出现图像时会有延迟。我正在尝试实现preloadasync方法,以便它在启动时加载所有svg图像,但是我一直收到异常。

System.ArgumentNullException:值不能为null。 参数名称:流和解码   在FFImageLoading.DataResolvers.WrappedDataResolver.Resolve(System.String标识符,FFImageLoading.Work.TaskParameter参数,System.Threading.CancellationToken ...

有人看到我做错了事或给出了有效的例子吗?

我已经看过Internet,但是没有一个预加载svg文件的有效示例。 我100%确保正确给出了SVG路径,否则我将得到fileNotFoundException。

private async Task PreloadImages() //in xaml.cs
    {
        var resources = Assembly.GetExecutingAssembly().GetManifestResourceNames();

        foreach (var r in resources)
        {
            if (!r.EndsWith(".svg")) continue;

            try
            {                  
 //Exception here  await ImageService.Instance.LoadEmbeddedResource($"resource://{r}").PreloadAsync();
            }
            catch (Exception ex)
            {
              _logger.Log(ex.Message)
            }
        }
    } 

  <StackLayout> //in xaml
        <ffimageloadingsvg:SvgCachedImage
                CacheDuration="0"
                FadeAnimationEnabled="False"
                FadeAnimationForCachedImages="False"
                HeightRequest="60"
                HorizontalOptions="Center"
                LoadingDelay="0"
                Source="resource://ProjectName.Resources.SVG.Customer.svg"
                VerticalOptions="Center"
                WidthRequest="60">
                <ffimageloadingsvg:SvgCachedImage.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding CustomerCommand}" NumberOfTapsRequired="1" />
                </ffimageloadingsvg:SvgCachedImage.GestureRecognizers>
       </ffimageloadingsvg:SvgCachedImage>
            <Label
                HorizontalOptions="Center"
                IsVisible="{Binding CustomerManagementVisible}"
                Text="{xaml:Translate General.Customers}"
                VerticalOptions="Center" />
    </StackLayout>  

我们希望图像像标签一样立即显示。但是现在,我们仍然延迟了一秒钟,因为标签已经可见,而图像不可见。

0 个答案:

没有答案