无法在 Xamarin.android 中将图像 URL 转换为 Bitmap



我需要将字符串图像https URL转换为位图,堆栈溢出中的解决方案对我不起作用。

public static Bitmap getBitmapFromURL(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}

}'

如果我使用此代码,它会在 C# 中给我很多引用错误。

根据您的描述,我猜您想从 url 下载图像并转换为位图?

如果是,我建议你可以看看下面的代码:

private 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;
}

然后,您可以在图像视图中显示此图像。

private ImageView image;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
image = FindViewById<ImageView>(Resource.Id.imageView1);
var imageBitmap = GetImageBitmapFromUrl("https://cdn1.iconfinder.com/data/icons/general-9/500/add-512.png");
image.SetImageBitmap(imageBitmap);
}
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content" 
android:id="@+id/imageView1"/>

最新更新