Выпуск встроенного изображения Xamarin - PullRequest
0 голосов
/ 09 января 2020

Итак, я хочу добавить в свои приложения lo go как встроенный png. Посмотрел несколько хороших уроков, и я чувствую, что действительно воспроизвел все пути, но он все еще не показывает (очевидно, я делаю что-то не так, смеется). В настоящее время у меня нет изображения вообще, даже когда я набираю "local: ImageResource APRooved.Logoforappheader.png" говорит "Нет предложений". Мои изображения в настоящее время находятся в ресурсных папках Android & iOS, так как это кроссплатформенное приложение, а свойства установлены на EmbeddedResource.

Кто-нибудь имеет какую-либо идею или может направить меня в правильном направлении?

Ниже мой фрагмент XAML:

<?xml version="1.0" encoding="utf-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:local="clr-namespace:APRooved"
        mc:Ignorable="d"
         x:Class="APRooved.MainPage"
         xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;    assembly=Xamarin.Forms.Core"
        android:TabbedPage.ToolbarPlacement="Bottom"
        BarBackgroundColor="#2B333F"
        BarTextColor="#FFA600">

<ContentPage Title="Calculator" IconImageSource="Logoforappheader.png">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width ="1*" />
        <ColumnDefinition Width ="1*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="2*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="3*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="2*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="2*"/>
    </Grid.RowDefinitions>

   <BoxView Color="#2B333F"
            CornerRadius="0"
            Grid.Column="0"
            Grid.ColumnSpan="5"
            Grid.Row="0"
            Grid.RowSpan="3"   
            WidthRequest="700"
            HeightRequest="200"
            VerticalOptions="Center"
            HorizontalOptions="Center" />


    <Image Source="{local:ImageResource APRooved.Logoforappheader.png}" WidthRequest="300"     HeightRequest="100"
           Grid.Column="1"
            Grid.ColumnSpan="3"
            Grid.Row="1"
            Grid.RowSpan="1"></Image>

ниже мое расширение ресурса изображения

using System;
using System.Reflection;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace APRooved
{
    [ContentProperty(nameof(Source))]
    public class ImageResourceExtension : IMarkupExtension
    {
        public string Source { get; set; }

        public object ProvideValue(IServiceProvider serviceProvider)
        {
            if (Source == null)
            {
                return null;
            }

            // Do your translation lookup here, using whatever method you require
            var imageSource = ImageSource.FromResource(Source,     typeof(ImageResourceExtension).GetTypeInfo().Assembly);

            return imageSource;
        }
    }

}

1 Ответ

1 голос
/ 09 января 2020

Мои изображения в настоящее время находятся в папках ресурсов Android & iOS как кроссплатформенное приложение

Если изображения локальные изображения , вам следует поместите их в нужное место под каждым проектом.

iOS - предпочтительный способ управления и поддержки изображений, поскольку iOS 9 - это использование наборов изображений каталога активов, которые должны содержать все версии образа, необходимые для поддержки различных устройств и масштабных коэффициентов для приложения.

Android - Поместите изображения в каталог Resources / drawable с помощью Build Action: AndroidResource. Также могут быть предоставлены High- and low-DPI версии изображения.

Универсальная Windows Платформа (UWP) - Поместите изображения в каталог приложения root с помощью Build Action: Content.

Затем загрузите изображение следующим образом:

<Image Source="xxx.jpg" />

Если изображения Встроенные изображения , они должны быть помещены в общий проект и загружены так же, как вы делали это в своем вопросе. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...