我的 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 下,在 的
OnCreate方法中MainActivity.cs,我添加了FFImageLoading.Forms.Platform.CachedImageRenderer.Init(enableFastRenderer:true);ANDFFImageLoading.Forms.Platform.CachedImageRenderer.InitImageViewHandler(); - 在 iOS 下,在 的
FinishedLaunching()方法中AppDelegate.cs,我添加了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 而不是本地路徑。
知道這里可能是什么問題以及如何解決嗎?
uj5u.com熱心網友回復:
我知道 FFImageLoading 不再維護。許多應用程式仍在使用該軟體包,但請記住,報告的未解決問題很可能無法修復。很遺憾,因為這是 Xamarin Forms 最受歡迎的包之一,但看起來我們將不得不開始尋找替代品。
祝你好運。
uj5u.com熱心網友回復:
我檢查了您按照說明操作的步驟。顯然,您的步驟是正確的,我設法按照您所說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();
視圖模型: 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/470482.html
標籤:xamarin xamarin.forms ff图片加载
