[FIXED] Find path of local image of iOS project in Xamarin

Issue

I have an Image view like this:

<Image Source="{StaticResource AppIcon}"  WidthRequest="80" HeightRequest="180" IsEnabled="True" ></Image>

Then i want to declare two different paths for either Android and iOS environment as:

<ResourceDictionary>
   <OnPlatform x:TypeArguments="ImageSource" x:Key="AppIcon">
       <On Platform="Android" Value="/Resources/drawable/splash_logo.png" />
       <On Platform="iOS" Value="????" />
   </OnPlatform>
</ResourceDictionary>
        

The problem is that i don’t know how load my image from assets catalog in iOS project (android goes ok).

Can anyone help me?

Solution

if you are using native resources for Android and Asset Catalog for iOS then use only the name of file as source.


For example:

Files path in native projects:

  • Android – /resource/drawable-{size}/security.png
  • iOS – /Assets.xcassets/security.imageset/{name/size}.{png/pdf/json}

Using XAML:

<Image Source="security" />

Using C#:

Image.Source = "security";

(XAML) If the name of file is different for Android and iOS then use the OnPlatform + On tags but value will be still only the name without extension.

<On Platform="Android" Value="security" />
<On Platform="iOS" Value="devices" />

For C# you can use

if (Device.Platform == Device.Android)
  Image.Source = "security";
else
  Image.Source = "devices";

Answered By – Domik234

Answer Checked By – David Marino (Easybugfix Volunteer)

Leave a Reply

(*) Required, Your email will not be published