【发布时间】:2020-08-08 18:26:01
【问题描述】:
我想在后台运行这个函数
private void SetPosters()
{
foreach(var i in posters)
{
i.SetImageBitmap(GetImageBitmapFromUrl(getLinkfromTag((i.Tag).ToString())));
}
}
private static string getLinkfromTag(String tag)
{
String Link = "-";
foreach(var i in movies_Arr)
{
if(i.Id == tag)
{
Link = i.HorizontalPoster;
}
}
return Link;
}
private static Bitmap GetImageBitmapFromUrl(string url)
{
Bitmap imageBitmap = null;
using (var webClient = new WebClient())
{
var imageBytes = webClient.DownloadData(url);
if (imageBytes != null && imageBytes.Length > 0)
{
imageBitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
}
}
return imageBitmap;
}
从网络下载图像时,我无法与我的 UI 交互
其他信息 -
posters 是一个列表视图,包含来自活动的所有图像视图 movies_Arr 是一个包含海报链接的列表视图
【问题讨论】:
-
看看异步/等待
-
有趣的部分是你忘记了过去的 SetImageBitmap 代码,因为你必须异步运行除此方法中的所有代码外,必须在 ui 线程上运行才能访问 ui 元素
标签: c# android .net xamarin xamarin.android