【发布时间】:2016-05-20 04:10:04
【问题描述】:
在 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 个条目。使用这种方法会扰乱 listview 的加载时间。
注意:这个函数是使用依赖注入本地调用的。
也许会做进一步的改进。有什么想法吗?
【问题讨论】:
标签: c# image xamarin mono xamarin-forms