Xamarin.Forms Изображения не отображаются - PullRequest
1 голос
/ 03 февраля 2020

Я разрабатываю приложение Cross-Platform в Xamarin Visual Studio 2019 и у меня возникают проблемы с отображением изображения.

Я пытаюсь показать изображение со следующим кодом XAML.

<StackLayout Grid.Row="0" Grid.Column="0" Spacing="0" >
    <Image
        HorizontalOptions="CenterAndExpand"
        VerticalOptions="CenterAndExpand"
        Source="logo"
        WidthRequest="{OnPlatform iOS=300, Android=250}">
    </Image>
</StackLayout>

Проблема в image not displaying on either preview or deployed app.

Я получил ссылки с нескольких форумов, включая справку от StackOverflow, но не смог решить эту проблему.

Вот моменты и методы, над которыми я работал, чтобы решить проблема.

  1. Файл с именем logo является папкой ресурсов android и является правильным файлом .png.
  2. Свойство для файла установлено на AndroidResource .
  3. Согласно опубликованным здесь ответам, Xamarin Изображения, на которых нет , имя файла не содержит дефиса, а также пробовал другие опубликованные ответы на той же странице.

  4. Размер изображения 307X80 пикселей, поэтому он находится в пределах диапазона для памяти или размера.

Android В папке Drawable также содержится изображение по умолчанию xamarin_logo.png и что файл работает нормально. Но не недавно добавленные изображения. Что-то мне не хватает здесь, чтобы добавить эти файлы изображений в решение?

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

В вашем случае проблема заключается в расширении изображения, пути к изображению или в действиях по сборке изображения. Я попробовал ваш код и получил, что он работает нормально для изображений PNG и JPG.

<StackLayout Spacing="0">
    <Image HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"
            Source="github.png" WidthRequest="{OnPlatform iOS=300, Android=250}" />
    <Image HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"
            Source="githubb.jpg" WidthRequest="{OnPlatform iOS=300, Android=250}" />
</StackLayout>

Примечание. Я удалил индексирование grid.row и grid.column, поскольку не использую свой StackLayout внутри сетки.

Пожалуйста, убедитесь, что вы сохранили свои изображения непосредственно в папке для рисования в ресурсах в Android. В противном случае вам может потребоваться указать имя источника в виде FolderName\ImageName.Extension.

Для получения более подробной информации см. Ссылку ниже:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/images?tabs=windows#local -изображения

Кроме того, убедитесь, что BuildAction вашего изображения AndroidResource и Custom Tool MSBuild:UpdateGeneratedFiles. Пожалуйста, обратитесь к изображению ниже.

enter image description here

Я получил приведенный ниже вывод для кода, который я разместил выше.

enter image description here

Надеюсь, это поможет.

1 голос
/ 03 февраля 2020

Ваш код XAML правильный, но вы пропустили расширение изображения. .png Вы должны определить расширение (формат) вашего изображения. Например: (image.png или image.jpeg) По этой причине изображение не отображается.

<StackLayout Grid.Row="0" Grid.Column="0" Spacing="0" >
    <Image
        HorizontalOptions="CenterAndExpand"
        VerticalOptions="CenterAndExpand"
        Source="logo.png"
        WidthRequest="{OnPlatform iOS=300, Android=250}">
    </Image>
</StackLayout>
...