Caching 表单图像缓存跨平台解决方案

Caching 表单图像缓存跨平台解决方案,caching,memory,xamarin.forms,image-caching,Caching,Memory,Xamarin.forms,Image Caching,我们有很多图像用作应用程序资产,为了简单起见,假设只有10个图像 据我所知,Xamarin.Forms不会兑现这些图像,所以如果我的工具栏中显示了这10幅图像(这只是为了解释问题,我们不会将10幅图像放在一个小工具栏中),我有5页显示相同的工具栏,这意味着每5次加载10幅图像,总共加载50幅图像。我只想加载10幅图像,而不是加载5页x 10幅图像=50幅图像 此外,如果我必须在我们的存储库中添加这10个图像,我必须在存储库中添加至少3个相同图像的副本(1个用于Android,1个用于IOS,1个

我们有很多图像用作应用程序资产,为了简单起见,假设只有10个图像

据我所知,Xamarin.Forms不会兑现这些图像,所以如果我的工具栏中显示了这10幅图像(这只是为了解释问题,我们不会将10幅图像放在一个小工具栏中),我有5页显示相同的工具栏,这意味着每5次加载10幅图像,总共加载50幅图像。我只想加载10幅图像,而不是加载5页x 10幅图像=50幅图像

此外,如果我必须在我们的存储库中添加这10个图像,我必须在存储库中添加至少3个相同图像的副本(1个用于Android,1个用于IOS,1个用于UWP)。这导致存储库中有30个图像,但实际上我只需要10个

因此,这两个问题让我相信应该有一个更好的跨平台解决方案,这样我可以在所有3个平台上共享相同的图像,所有3个平台(Android、IOS、UWP)只使用一个图像,并且无论在UI中显示多少次,我只在内存中加载一次图像。

您可以查看哪些支持缓存。要在共享代码中包含图像而不是特定于平台的代码,您可以查看嵌入的图像:

嵌入的映像也随应用程序一起提供(如本地映像),但映像文件不是在每个应用程序的文件结构中都有映像的副本,而是作为资源嵌入到程序集中。这种分发图像的方法特别适合于创建组件,因为图像与代码捆绑在一起

请记住,在每个平台上添加图像并不是一件坏事。由于不同的像素密度等,每个平台都有自己的图像版本,所以为了使它在每个平台上看起来都很好,您可能需要考虑平台特定的路由。 另一种选择是将图像作为文件链接图像添加到每个平台特定的文件中。图像文件本身可以保存在单个位置,并链接到每个平台的正确目录中。

您可以查看哪些支持缓存。要在共享代码中包含图像而不是特定于平台的代码,您可以查看嵌入的图像:

嵌入的映像也随应用程序一起提供(如本地映像),但映像文件不是在每个应用程序的文件结构中都有映像的副本,而是作为资源嵌入到程序集中。这种分发图像的方法特别适合于创建组件,因为图像与代码捆绑在一起

请记住,在每个平台上添加图像并不是一件坏事。由于不同的像素密度等,每个平台都有自己的图像版本,所以为了使它在每个平台上看起来都很好,您可能需要考虑平台特定的路由。
另一种选择是将图像作为文件链接图像添加到每个平台特定的文件中。图像文件本身可以保存在单个位置,并链接到每个平台的正确目录中。

有一个Xamarin库。名为的表单支持不同的分辨率和设备,就像Android/iOS的特定项目一样

Forms9Patch有麻省理工学院的许可证,下面是


这也是一个很好的概述。

有一个Xamarin.Forms库,它支持不同的分辨率和设备,就像Android/iOS的特定项目一样

Forms9Patch有麻省理工学院的许可证,下面是


此外,这是一个很好的概述。

非常感谢Steven非常感谢Steven