在 Xamarin.Android 中将字节数组异步转换为位图
Asynchronously convert byte array into bitmap in Xamarin.Android
我正在检索一组服务器图像,图像以字符串形式存储。
我的做法是:
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
还很陌生
所以如果我没理解错的话你想在后台进行解码?如果是这样,您可以使用以下命令启动后台任务:
Task.Run(() =>
{
//Code here
});
编辑
您似乎对加快应用程序中的图像加载更感兴趣。
我建议看一下:https://forums.xamarin.com/discussion/58341/ffimageloading-plugin-fast-and-memory-friendly-image-loader-ios-android-forms-windows
我正在检索一组服务器图像,图像以字符串形式存储。 我的做法是:
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
还很陌生所以如果我没理解错的话你想在后台进行解码?如果是这样,您可以使用以下命令启动后台任务:
Task.Run(() =>
{
//Code here
});
编辑 您似乎对加快应用程序中的图像加载更感兴趣。 我建议看一下:https://forums.xamarin.com/discussion/58341/ffimageloading-plugin-fast-and-memory-friendly-image-loader-ios-android-forms-windows