我正在尝试在Visual Studio 2019的Xamarin项目中添加图像。 图像可以从本地存储中显示,但无法从外部链接中显示。 我需要能够显示来自图像URL的图像。
我尝试过以下方法:
在Android API 27、28上构建应用程序,
检查SSL实现选项是否为本机TLS 1.2+,
更改站点SSL状态为http、https。
更改来自不同站点的图像和图像URL,
更改图像大小在50 KB和3 MB之间,
尝试使用其他图像扩展名,如jpg、jpeg、png等。
当我卸载并重建应用程序时,在第一次运行应用程序时会抛出此错误:
Image Loading: Error getting stream for https://p-valid.com/images/logo.png:
System.ObjectDisposedException:
在我看来,这个错误是Xamarin中的一个bug。
请将以下代码添加到AndroidManifest.xml文件中。
<uses-permission android:name="android.permission.INTERNET" />
只有将图像放入drawable文件夹中并使用其名称获取时,才能显示图像:
var image = new Image { Source = "test.jpg"};
我的主要代码是:
var layout = new StackLayout { Padding = new Thickness(5, 10) };
var label = new Label { Text = "Hello world" };
var image = new Image {
Source = ImageSource.FromUri(new Uri("http://mydatabase/test.jpg"))
};
layout.Children.Add(label);
layout.Children.Add(image);
this.Content = layout;
我期望这段代码的功能是:
输出 Hello World 并显示图片。
但实际上只输出了 Hello World,没有显示图片。
同时,在调试输出控制台中会写出以下错误:
ImageLoaderSourceHandler: Could not retrieve image or image data was invalid: Uri http://mydatabase/test.jpg
在我看来,这段代码涉及到错误的缓存图像数据。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
。 - Turkuz olenedekandroid.permission.INTERNET
- Jason