Xamarin.Forms iOS изображения не отображаются - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть общий проект Xamarin.Forms.На Android все изображения работают нормально.Я хотел добавить их в свой проект iOS, но они не отображаются.Я добавил их в Assets.xcassets:

{
  "filename": "logo_launcher.png",
  "scale": "1x",
  "idiom": "universal"
}

И я использую следующий XAML:

<Image Source="logo_launcher.png" x:Name="logo" />

Я добавил все изображения, кроме векторных.Я тестирую его на имитаторе iPhone 8 - 11.4.

Хотя это устарело, я попытался добавить изображения в папку «Ресурс».Но я даже не смог выбрать .png файлы.Так что это тоже не сработало.

Я теряюсь в том, что делать.Есть ли какая-то опция, которую мне нужно включить, или что-то, что нужно включить в XAML, чтобы она работала?

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Может быть, я нашел возможное решение , используя Assets.xcassets, проверьте следующие шаги:

  1. Main.xaml

    <Image x:Name="iconBrain">
        <Image.Source>
            <OnPlatform x:TypeArguments="ImageSource">
                <OnPlatform.iOS><FileImageSource File="IconBrain"/></OnPlatform.iOS>
                <OnPlatform.Android><FileImageSource File="ic_brain"/></OnPlatform.Android>
            </OnPlatform>
        </Image.Source>
    </Image>
    
  2. Android: добавьте изображения в соответствующие папки Drawable в каталоге ресурсов.

  3. iOS: создайте новый набор изображений в Assets.xcassets и добавьте изображения.
  4. Готово.Никаких дополнительных свойств, конфигов или трюков xamarin.

Проверьте мой GitHub для полного решения, также я попытался воспроизвести ту же среду с Xamarin.Forms, Shared Projectи iPhone 8 - симулятор 11.4.

Еще один момент: вы не можете добавлять изображения в каталоги mipmap, поскольку папки mipmap предназначены только для размещения значков приложений / средств запуска (которые отображаются на домашнем экране).Любые другие используемые для рисования ресурсы должны быть помещены в соответствующие папки для рисования, как и раньше.

Лучше всего размещать значки приложений в папках mipmap (а не в папках drawable), поскольку они используются вразрешение отличается от плотности тока устройства. - Google blogpost

Наконец, спасибо за информацию об устаревшем подходе Apple.

До iOS9, изображения обычно помещаются в папку ресурсов с помощью Build Action: BundleResource.Тем не менее, этот метод работы с изображениями в приложении для iOS не рекомендуется Apple.Для получения дополнительной информации см. Размеры изображений и Имена файлов . - Изображения в Xamarin.Forms

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

0 голосов
/ 09 мая 2019

Просто выберите все изображения в папке ресурсов в ios и right click-->build action-->bundle resource.Это будет работать.

0 голосов
/ 13 сентября 2018

Проверьте / Воспроизведите несколько шагов ниже:

  1. Проверьте действие сборки на вашем ресурсе изображения, в общем PCL оно должно быть Embedded Resource, в Android действие сборки должно быть AndroidResource и BundleResource в iOS

  2. Попробуйте установить Copy to output directory в Always copy

  3. Удалить папки bin / obj, переключить конфигурацию сборкиот отладки к выпуску, пересоберите проект и затем вернитесь к отладке

  4. Попробуйте удалить изображение с iOS, пересобрать, заново добавить, а затем повторите шаги, описанные выше

Кроме того, вы можете попробовать установить ImageSource, как показано ниже:

<Image x:Name="logo"> 
    <Image.Source> 
        <OnPlatform x:TypeArguments="ImageSource"> 
            <On Platform="Android" Value="logo_launcher.png"/>
            <On Platform="iOS" Value="logo_launcher"/>
        </OnPlatform> 
    </Image.Source> 
</Image>

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

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