Tur*_*dek 5 c# xamarin.ios xamarin.android xamarin.forms visual-studio-2019
我正在尝试将图像添加到 Visual Studio 2019 上的 Xamarin 项目。图像从本地存储显示,但从外部链接显示。我需要能够显示来自图像网址的图像。
我尝试过的:
在 android apis 27,28 上构建应用程序
检查 ssl 实现的选项是否为 Native TLS 1.2+
更改站点 ssl 状态 http、https。
更改来自不同站点的图像和图像网址。
另一个图像扩展名 jpg,jpeg,png,...
在 50 kb 和 3mb 之间更改图像大小。
当我卸载并重建应用程序时,在第一次运行应用程序时抛出此错误:
Image Loading: Error getting stream for https://p-valid.com/images/logo.png:
System.ObjectDisposedException:
Run Code Online (Sandbox Code Playgroud)
在我看来,这个错误是 Xamarin 中的一个错误。
将此代码添加到 AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
当我将图像放入可绘制文件夹然后通过其名称获取它时,图像显示的唯一方式:
var image = new Image { Source = "test.jpg"};
Run Code Online (Sandbox Code Playgroud)
我的主要代码是:
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;
Run Code Online (Sandbox Code Playgroud)
我对这段代码的期望是:
编写 Hello world,然后显示图像
但它只显示Hello world,没有图像。
另外,在调试输出控制台上写入此错误:
ImageLoaderSourceHandler: Could not retrieve image or image data was invalid: Uri http://mydatabase/test.jpg
Run Code Online (Sandbox Code Playgroud)
在我看来,这段代码是关于错误的缓存图像数据的。
首先,新创建的有关 xamarin forms 版本的项目是4.2. 但是,出现错误:
[0:] ImageLoaderSourceHandler:无法检索图像或图像数据无效:Uri: https: //aka.ms/campus.jpg
但是,在检查项目中的Xamarin Forms 的最新版本后。您可以将其更新到最新版本: 4.3.0.908675来检查是否可以使用。
然后以下代码在我的本地项目中运行:
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
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("https://s2.ax1x.com/2019/10/28/K6KUo9.png")),
BackgroundColor = Color.Accent
};
layout.Children.Add(label);
layout.Children.Add(image);
Content = layout;
}
}
Run Code Online (Sandbox Code Playgroud)
需要添加权限manifest:
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
影响 :
注意:最好不要加载大尺寸的图像。它还会导致错误加载。
| 归档时间: |
|
| 查看次数: |
2812 次 |
| 最近记录: |