c# – Xamarin表单:如果未找到Url,则为默认图像
作者:互联网
在xamarin表单中,我们可以创建如下图像:
Image i = new Image { Source = "http://www.foo.com/foo.jpg };
将此添加到布局后如果url返回图像,它将显示它.我现在想要的是有一种方法可以知道Url是否是一个真实的图像.否则我将显示默认图像.
问候.
编辑
我创建了一个函数:
public string GetImageSourceOrDefault(string orgUrl)
{
var req = (HttpWebRequest)WebRequest.Create(orgUrl);
req.Method = "HEAD";
try
{
using (var resp = req.GetResponse())
{
bool res = resp.ContentType.ToLower(CultureInfo.InvariantCulture)
.StartsWith("image/");
if (res)
return orgUrl;
else
return "defualt_logo.jpg";
}
}
catch
{
return "default_logo.jpg";
}
}
这个功能起到了作用.但是,对于每个图像,它都会发出请求.我有一个列表视图,显示220条目.使用此方法搞砸了列表视图加载的时间.
注意:使用依赖注入本机调用此函数.
也许会有进一步的改进.有任何想法吗?
解决方法:
FFImageLoading CachedImage支持加载和错误占位符(以及更多).它基本上是具有附加属性的Image的API兼容替代品.你可以试试.
var cachedImage = new CachedImage() {
LoadingPlaceholder = "Loading.png",
ErrorPlaceholder = "Error.png"
};
https://github.com/molinch/FFImageLoading
标签:c,image,mono,xamarin,xamarin-forms-2 来源: https://codeday.me/bug/20190611/1220472.html