C# 如何在Xamarin表单中使用FFImageLoading快速加载gif图像?
我的Gif图像大小为2MB。我使用Xamarin表单的库加载来加载它。但时间负载超过7秒。 如何快速加载gif图像 我当前正在使用路径图像:C# 如何在Xamarin表单中使用FFImageLoading快速加载gif图像?,c#,.net,xamarin,xamarin.forms,C#,.net,Xamarin,Xamarin.forms,我的Gif图像大小为2MB。我使用Xamarin表单的库加载来加载它。但时间负载超过7秒。 如何快速加载gif图像 我当前正在使用路径图像: <ffimageloading:SvgCachedImage HorizontalOptions="Center" VerticalOptions="Center" Aspect="AspectFill" x:Name="Gif" Source="{Binding image}" Margin="0"/> 用户无法等待加载图像gif。 所以,
<ffimageloading:SvgCachedImage HorizontalOptions="Center" VerticalOptions="Center" Aspect="AspectFill" x:Name="Gif" Source="{Binding image}" Margin="0"/>
用户无法等待加载图像gif。
所以,请支持我如何在Xamarin表单上快速加载gif图像
谢谢 您可以使用
WebView
加载快速Gif图像。
使用WebView不需要设置任何库。
我用它来代替库ffimageload
。
它创建一个包含Gif图像的.html文件,所以加载速度非常快。
您可以在以下位置使用它:
在Xamarin表单上使用WebView: 在文件
.xaml
中添加源代码:
<WebView HorizontalOptions="Center"
VerticalOptions="Center"
HeightRequest="{Binding HeightImage}"
WidthRequest="{Binding WidthImage}"
Source="{Binding LinkImageGif}" />
int imageHeight = HeightImage;
int imageWidth = WidthImage;
var source = new HtmlWebViewSource
{
Html = $"<body\"><img src=\"{_srcImage}\" alt=\"A Gif file\" width=\"{imageWidth}\" height=\"{imageHeight}\" style=\"width: 100%; height: auto;\"/></body>",
BaseUrl = DependencyService.Get<IBaseUrl>().Get()
};
因为Android和iOS的BaseUrl
是不同的。所以,使用共享项目,创建依赖关系
首先,创建一个接口
:
namespace abcxyz
{
public interface IBaseUrl { string Get(); }
}
在Android的dependecy中,添加代码:
[assembly: Dependency(typeof(BaseUrlAndroid))]
namespace abcxyz
{
public class BaseUrlAndroid : IBaseUrl
{
public string Get() => "file:///android_asset/";
}
}
[assembly: Dependency(typeof(BaseUrlOniOs))]
namespace abcxyz
{
public class BaseUrlOniOs : IBaseUrl
{
public string Get()
{
return NSBundle.MainBundle.BundlePath;
}
}
}
(Gif图像将添加到文件夹:AndroidResource的资产
根据iOS,添加代码:
[assembly: Dependency(typeof(BaseUrlAndroid))]
namespace abcxyz
{
public class BaseUrlAndroid : IBaseUrl
{
public string Get() => "file:///android_asset/";
}
}
[assembly: Dependency(typeof(BaseUrlOniOs))]
namespace abcxyz
{
public class BaseUrlOniOs : IBaseUrl
{
public string Get()
{
return NSBundle.MainBundle.BundlePath;
}
}
}
(Gif图像将添加到iOS的文件夹:Resource
(BundleResource
)