编程语言
首页 > 编程语言> > c# – Xamarin表单:如果未找到Url,则为默认图像

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