2017-08-03 126 views
0

我們有許多圖像用作應用資產,爲了簡單起見,我們只說10張圖片。我知道,Xamarin.Forms不會將這些圖像放在一起,所以如果我的工具欄中顯示了這10個圖像(這只是爲了解釋問題,我們不會真的把10個圖像放在一個小工具欄中)並且我有5個頁面顯示相同的工具欄,這意味着10個圖像將每5次加載一次,導致總共加載50個圖像。我只想加載10張圖片,而不是加載5張圖片×10圖片= 50張圖片。此外,如果我必須將這10張圖片添加到我們的存儲庫中,我將不得不在我們的存儲庫中添加至少3個相同圖像的副本(Android 1,IOS 1,UWP 1)。這導致存儲庫中有30個圖像,但實際上我只需要10個。因此,這兩個問題讓我相信應該有一個更好的跨平臺解決方案,以便我可以在所有3個平臺上共享相同的圖像,只有一個所有3個平臺(Android,IOS,UWP)使用的圖像,並且無論我在UI中展示多少次,我都只在內存中加載一次圖像。Xamarin.Forms圖像緩存跨平臺解決方案

回答

2

你可以看看支持緩存的FFImageLoading。有圖像共享代碼,而不是你的平臺特定的代碼,你可以看看嵌入圖像:

嵌入圖像也隨應用程序(如本地圖片),但是,而不必在圖像的副本每個應用程序的文件結構都將圖像文件作爲資源嵌入程序集中。這種分發圖像的方法特別適合創建組件,因爲圖像與代碼捆綁在一起。

https://developer.xamarin.com/guides/xamarin-forms/user-interface/images/#Embedded_Images

請記住,雖然每個平臺,添加圖像是不是一件壞事。由於不同的像素密度等,每個平臺都有自己的圖像版本,以便在每個平臺上看起來不錯,您可能需要考慮平臺特定的路線。

另一種替代方法是將圖像添加爲每個平臺特定文件中的文件鏈接圖像。圖像文件本身可以保存在一個位置,並以文件形式鏈接到每個平臺的正確目錄中。

+0

非常感謝史蒂文 – pixel