如何从服务器下载Image [Call API,API返回图像的byte []]并以xamarin形式显示在contentpage中

时间:2017-05-11 06:52:21

标签: image xamarin download

  1. 呼叫休息服务
  2. 休息服务返回图像/音频/视频的字节[]表示
  3. 转换为byte []到图像并在xamarin的内容页面中显示

1 个答案:

答案 0 :(得分:1)

首先,您可以创建一个简单地发出API请求并以字节数组形式获取内容的函数。 HTTP请求的一个简单示例:

  public static byte[] GetImageByteArray(string url)
    {
        try
        {
            using (var client = new HttpClient())
            {
                var uri = new Uri(url);
                var response = client.GetAsync(uri).Result;
                if (response.IsSuccessStatusCode)
                {
                    var content = response.Content.ReadAsByteArrayAsync();
                    return content.Result;
                }
            }
            return null;
        }
        catch
        {
            return null;
        }
    }

接下来,您只需将结果中的输出绑定到图像源,将图像绑定到您的内容:

var mainStack = new StackLayout();
var imageByteArray = GetImageByteArray("https://static.pexels.com/photos/34950/pexels-photo.jpg");
Image image;
if (imageByteArray != null)
{
    image = new Image()
    {
        Source = ImageSource.FromStream(() => new MemoryStream(imageByteArray))
    };

    mainStack.Children.Add(image);
}
Content = mainStack;
相关问题