代码之家  ›  专栏  ›  技术社区  ›  pixel

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

  •  0
  • pixel  · 技术社区  · 8 年前

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

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

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

    2 回复  |  直到 8 年前
        1
  •  2
  •   Steven Thewissen    8 年前

    你可以调查 FFImageLoading

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

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

    请记住,在每个平台上添加图像并不是一件坏事。由于像素密度等不同,每个平台都有自己的图像版本。因此,为了使其在每个平台上看起来更好,您可能需要考虑平台特定的路径。

    另一种选择是将图像作为文件链接图像添加到每个平台特定的文件中。图像文件本身可以保存在单个位置,并将文件链接到每个平台的正确目录中。

        2
  •  0
  •   T.L.E    6 年前

    Forms9Patch 它支持不同的分辨率和设备,就像Android/iOS的特定项目一样。

    Forms9Patch拥有麻省理工学院许可证,以下是 github

    video 这应该是一个很好的总体概述。

    推荐文章