安装 FFImageLoading 图像后根本不显示
After installing FFImageLoading images don't show at all
我的 Xamarin Forms 5 应用程序将允许用户上传他们自己的图片,这些图片可能很大。我注意到大图片需要很长时间才能显示,所以我安装了 FFImageLoading
并按照位于 https://github.com/luberda-molinet/FFImageLoading/wiki/Xamarin.Forms-API.
的 Github 页面上的说明进行操作
具体来说,我安装了以下软件包:
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.cs
的 OnCreate
方法中,我添加了 FFImageLoading.Forms.Platform.CachedImageRenderer.Init(enableFastRenderer:true);
AND FFImageLoading.Forms.Platform.CachedImageRenderer.InitImageViewHandler();
- 在iOS下,在
AppDelegate.cs
的FinishedLaunching()
方法中,我添加了FFImageLoading.Forms.Platform.CachedImageRenderer.Init();
AND 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 而不是本地路径。
知道这里可能存在什么问题以及如何解决它吗?
我检查了你的步骤,你遵循了 instructions.Obviously,你的步骤是正确的,我设法显示 image{using URL}
和 CollectionView 正如你 所说,希望能给大家一些启发。
型号:
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 中有效 well.However,在 iOS 中已经报告了一个问题:
github.com/luberda-molinet/FFImageLoading/issues/1498
据我所知,FFImageLoading 已不再维护。许多应用程序仍在使用该软件包,但请记住,报告的未解决问题很可能不会得到修复。令人难过的是,这是 Xamarin Forms 最受欢迎的软件包之一,但看起来我们将不得不开始寻找替代方案。
祝你好运。
我的 Xamarin Forms 5 应用程序将允许用户上传他们自己的图片,这些图片可能很大。我注意到大图片需要很长时间才能显示,所以我安装了 FFImageLoading
并按照位于 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.cs
的OnCreate
方法中,我添加了FFImageLoading.Forms.Platform.CachedImageRenderer.Init(enableFastRenderer:true);
ANDFFImageLoading.Forms.Platform.CachedImageRenderer.InitImageViewHandler();
- 在iOS下,在
AppDelegate.cs
的FinishedLaunching()
方法中,我添加了FFImageLoading.Forms.Platform.CachedImageRenderer.Init();
ANDFFImageLoading.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 而不是本地路径。
知道这里可能存在什么问题以及如何解决它吗?
我检查了你的步骤,你遵循了 instructions.Obviously,你的步骤是正确的,我设法显示 image{using URL}
和 CollectionView 正如你 所说,希望能给大家一些启发。
型号: 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 中有效 well.However,在 iOS 中已经报告了一个问题: github.com/luberda-molinet/FFImageLoading/issues/1498
据我所知,FFImageLoading 已不再维护。许多应用程序仍在使用该软件包,但请记住,报告的未解决问题很可能不会得到修复。令人难过的是,这是 Xamarin Forms 最受欢迎的软件包之一,但看起来我们将不得不开始寻找替代方案。
祝你好运。