在Xamarin.Android中将字节数组异步转换为位图

时间:2017-06-30 08:31:41

标签: asynchronous xamarin xamarin.android loading

我正在检索服务器的一组图像,图像以字符串形式存储。 我是如何做到这一点的:

String imageString = jObject.GetString("Image");
byte[] imageAsBytes = Base64.Decode(imageString, Base64Flags.Default);
Bitmap bitmap = BitmapFactory.DecodeByteArray(imageAsBytes, 0, 
imageAsBytes.Length);
ProcImage.SetImageBitmap(bitmap);
bitmap = null;

这显然非常慢。需要检索大量图像的屏幕有8秒的加载时间。

结果,我想知道我是否可以做" DecodeByteArray()"以某种方式异步,因为这是花费最多时间的。

我知道这是可能的,但我不确定如何解决这个问题,因为我对Android和Xamarin还不熟悉

1 个答案:

答案 0 :(得分:1)

所以,如果我理解正确,你想在后台进行解码?如果是这样,您可以使用以下命令启动后台任务:

     Task.Run(() =>
        {
          //Code here
        });

修改 您似乎更感兴趣的是在应用程序中加快图像加载速度。 我建议你看一下:https://forums.xamarin.com/discussion/58341/ffimageloading-plugin-fast-and-memory-friendly-image-loader-ios-android-forms-windows