9

I have a demo xamarin forms project that simply displays an image with its image source set to a remote URL. But the problem is it works for some URL and does not for others. I have picked up random image links from google image search and compiled a list of the working / non-working ones. Any insight on this strange behavior is hugely appreciated.

Thanks in Advance!

Working URLs

Non-Working URLs

XAML file

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:XamarinImageTest"
             x:Class="XamarinImageTest.MainPage"
             BackgroundColor="#000000">

    <ContentPage.Content>
        <Image Source="https://i.ytimg.com/vi/JTxPzXQ1Sso/maxresdefault.jpg" 
               VerticalOptions="Fill"
               HorizontalOptions="Fill"></Image>
    </ContentPage.Content>
</ContentPage>
6
  • How do you implement the image display in Xamarin.forms? post with the codes or more information will be helpful to let the other to see the whole picture. Commented Nov 29, 2017 at 10:35
  • Since you asked, I have attached the code also. I thought setting the source property of an image tag was obvious enough. :) Commented Nov 29, 2017 at 10:45
  • Looks like a caching problem. Try this library: github.com/luberda-molinet/FFImageLoading Commented Nov 29, 2017 at 11:25
  • No luck.. Even FFImageLoading is giving the same results. I have made a sample github project (github.com/uksreejith/XamarinImageTest) demonstrating this issue. I wonder if it has something to do with URL redirection. Commented Nov 29, 2017 at 12:45
  • Tested with the given url, first and third not working url were able to display on iOS (Ver 11.1) except the second .png image and all of them were not able to display on Android (Ver 6.0). But those image were able to preview in the code breaking point, just not able to display on the phone. Also, I tested with some others image url, some images were not able to display if it is "https", but if rename it to "http", it will be able to displayed. but not in your case. Weird behaviour, seem like it is a bug. Commented Nov 29, 2017 at 15:10

2 Answers 2

3

Use native http client handlers + TLS2.0 for your app (can be set in project settings):

For iOS also enable http downloads:

Sign up to request clarification or add additional context in comments.

4 Comments

Thanks a ton..!! Switching to native http client handlers did the trick..I wonder what was wrong with the managed one though.. hmm..maybe a bug that needs fixing.
Can you confirm that this works with Xamarin.forms not just Xamarin.Android? It talks about "The Xamarin.Android HttpClient configuration is in Project Options > Android Options, then click the Advanced Options button." - I can't see 'project options' or 'advanced' or anything similar in my xamarin forms app!
@niico You should check the Properties for MyProject.Android. There you will find Android Options which has an Advanced button at the end. But it didn't work for me.
To future debuggers: Make sure you have the most recent version of Xamarin.Forms package installed (I had 4.2.0.709249 and I updated to 4.2.0.848062). And make sure you've changed the image source URL before building/deploying the app, because images get cached for 24 hours.
2

I had this issue. Remote images would display in UWP and ISO, but would not display in Android. What worked was updating the NuGet Xamarin packages.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.