Xamarin-尽管看似已下载,但URI图像仍未渲染

时间:2019-12-09 21:11:52

标签: c# android image xamarin xamarin.forms

让我开始对不起,如果已经在某个地方回答了这个问题,我搜索了很长时间,却找不到有效的答案。

因此,按照标题,我有一个非常的简单应用,实际上有一个页面应该显示URI中的一张图像,仅此而已。由于某种原因,在物理设备或仿真器上部署时,映像都不会显示。图片效果很好,它只是来自网络(http://thumbs.dreamstime.com/z/watercolor-autumn-forest-landscape-sunset-hand-drawn-painting-fantasy-art-nature-beautiful-background-gouache-153834924.jpg)的随机图片。我已经附加了ActivityIndi​​cator,它会在一秒钟后停止旋转,因此我认为图像已加载,因此应用程序不连接到网络而只是图像渲染就不是问题了。

我尝试将Android选项->高级-> HttpClient实现设置为托管,并将SSL / TLS实现设置为本机TLS 1.2+,以及Android清单->所需权限-> Internet。都没有帮助。我尝试使用http://和https://,也都没有结果。我现在很困惑。

这是我的App.xaml.cs:

using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using App1.Services;
using App1.Views;

namespace App1
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            DependencyService.Register<MockDataStore>();
            MainPage = new ImagePage();
        }
    }
}

这是ImagePage.xaml.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace App1
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class ImagePage : ContentPage
    {
        public ImagePage()
        {
            InitializeComponent();

            var imageSource = new UriImageSource { Uri = new Uri("http://thumbs.dreamstime.com/z/watercolor-autumn-forest-landscape-sunset-hand-drawn-painting-fantasy-art-nature-beautiful-background-gouache-153834924.jpg") };
            imageSource.CachingEnabled = false;

            image.Source = imageSource;
        }
    }
}

这是此页面的xaml:

<?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:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="App1.ImagePage">
    <AbsoluteLayout>
        <ActivityIndicator IsRunning="{Binding Source={x:Reference image}, Path=IsLoading}" AbsoluteLayout.LayoutBounds="0.5, 0.5, 100, 100" AbsoluteLayout.LayoutFlags="PositionProportional"/>
        <Image IsVisible="True" x:Name="image"/>
    </AbsoluteLayout>
</ContentPage>

非常感谢您的帮助:)。正如我所说的,这非常简单,我不知道为什么这时不起作用。

1 个答案:

答案 0 :(得分:2)

您的Xamarin.Forms版本是什么?Xamarin.forms版本4.2.0.778463早期有一个issue reported,并且在Xamarin.forms版本4.2.0.848062中已得到修复。 / p>

所以您可以尝试更新Xamarin.forms版本