Внешнее изображение Xamarin не отображает проблему - PullRequest
2 голосов
/ 27 октября 2019

Я пытаюсь добавить изображения в проект Xamarin в Visual Studio 2019. Изображения отображаются из локального хранилища, но с внешних ссылок. Мне нужно, чтобы иметь возможность отображать изображение из URL-адреса изображения.

Что у меня есть trieds:

сборка приложения на Android apis 27,28
проверить опции для реализации ssl является Native TLS 1.2+
изменить сайт ssl статус http, https.
изменить изображение и URL-адреса изображения с разных сайтов.
другие расширения изображений jpg, jpeg, png, ...
изменение размеров изображения от 50 КБ до 3 МБ.

Когда я удаляю и перестраиваю приложение, при первом запуске приложения выдает эту ошибку:

Image Loading: Error getting stream for https://p-valid.com/images/logo.png:
System.ObjectDisposedException:

На мой взгляд, эта ошибка является ошибкой в ​​Xamarin.

добавьте этот код в AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

Только так, как изображение показано, когда япоместите изображение в папку для рисования, затем получите его по имени:

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а затем показать изображение

Но это только показывает Привет мир, и нет изображения.
Также на отладочной выходной консоли пишется эта ошибка:

ImageLoaderSourceHandler: Could not retrieve image or image data was invalid: Uri http://mydatabase/test.jpg

На мой взгляд, этот код относится к неверным данным кэшированного изображения.

1 Ответ

1 голос
/ 28 октября 2019

В начале, новый созданный проект о версии форм xamarin - 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;
    }
}

Необходимо добавить разрешение на добавление в manifest:

<uses-permission android:name="android.permission.INTERNET" />

Эффект:

enter image description here

Примечание : лучше не загружать большой размер изображения. Это также приведет к ошибкам при загрузке.

...