安装 FFImage加载图像后根本不显示



我的Xamarin Forms 5应用程序将允许用户上传他们自己的图像,这些图像可以很大。我注意到大图像需要很长时间才能显示,所以我安装了FFImageLoading,并按照他们的Github页面https://github.com/luberda-molinet/FFImageLoading/wiki/Xamarin.Forms-API上的说明进行操作。

具体来说,我安装了以下包:

  • Xamarin.FFImageLoading Version="2.4.11.982"
  • Xamarin.FFImageLoading.Forms Version="2.4.11.982"
  • Xamarin.FFImageLoading.Svg.Forms Version="2.4.11.982"
  • Xamarin.FFImageLoading.Transformations Version="2.4.11.982"

我也这样初始化它:

  • 在Android下,在MainActivity.csOnCreate方法中,我增加了FFImageLoading.Forms.Platform.CachedImageRenderer.Init(enableFastRenderer:true);FFImageLoading.Forms.Platform.CachedImageRenderer.InitImageViewHandler();
  • 在iOS下,在AppDelegate.csFinishedLaunching()方法中,我增加了FFImageLoading.Forms.Platform.CachedImageRenderer.Init();FFImageLoading.Forms.Platform.CachedImageRenderer.InitImageSourceHandler();

我第一次尝试它没有改变任何在我的XAML文件,这意味着我使用常规的Image控件和图像将不显示。

然后我尝试了以下操作,但我什么也没看到:

...
xmlns:ffil="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms"
...
<ffil:CachedImage
Source="{Binding FileUrl}"
DownsampleWidth="150"
DownsampleToViewSize="True"/>

重要:

我还想提到的是,图像显示在CollectionView控件和在所有情况下,他们的来源是一个URL,而不是一个本地路径。

你知道这里的问题是什么以及如何解决它吗?

我知道FFImageLoading不再维护了。许多应用程序仍在使用该软件包,但请记住,报告的开放问题很可能不会得到修复。很遗憾,因为这是Xamarin Forms中最受欢迎的软件包之一,但看起来我们必须开始寻找替代品了。

祝你好运。

我检查了你的步骤,你是按照说明做的。显然,你的步骤是正确的,我设法用CollectionView显示image{using URL},因为你,希望能给你一些启发。

模型:MyModel.cs

public class MyModel
{
public int id { get; set; }
public string FileUrl { get; set; }
}

视图:MainPage.xaml

<CollectionView ItemsSource="{Binding MyModels}">
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Vertical" Span="2" />
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate>
<ContentView Padding="0">
<ffil:CachedImage
Source="{Binding FileUrl}"
DownsampleWidth="150"
DownsampleToViewSize="True"/>
</ContentView>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>

在后台绑定ViewModel:

BindingContext = new MainPageViewModel();

ViewModel:MainPageViewModel.cs

public class MainPageViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private ObservableCollection<MyModel> myModels;
public ObservableCollection<MyModel> MyModels
{
get { return myModels; }
set { myModels = value; }
}
public MainPageViewModel()
{
MyModels = new ObservableCollection<MyModel>
{
new MyModel{id = 1, FileUrl = "http://loremflickr.com/600/600/nature?filename=simple.jpg"},
new MyModel{id = 2, FileUrl ="http://loremflickr.com/600/600/nature?filename=simple.jpg"},
new MyModel{id = 3, FileUrl = "http://loremflickr.com/600/600/nature?filename=simple.jpg"},
new MyModel{id = 4, FileUrl ="http://loremflickr.com/600/600/nature?filename=simple.jpg"},
new MyModel{id = 5, FileUrl = "http://loremflickr.com/600/600/nature?filename=simple.jpg"},
new MyModel{id = 6, FileUrl ="http://loremflickr.com/600/600/nature?filename=simple.jpg"}
};
}
}

更新:在Android上,它运行得很好。然而,在iOS中已经有一个问题:github.com/luberda-molinet/FFImageLoading/issues/1498

相关内容

  • 没有找到相关文章

最新更新