3

这可能是一匹死马,但我需要能够在我的 Xamarin 应用程序之外提供一个充满图像的本地文件夹 - 不是作为资源,不需要编译来添加更多图像 - 并在应用程序中的图像对象中显示这些图像。我的主要目标平台是 Windows 10。其他很好,不是必需的。

Xamarin Forms Image 通常采用文件名(无路径)或 URI。我无法从本地文件系统中找到并显示图像的任何一种方法。我一定是在做一些基本的错误。

非工作样本:

Image i = new Image();
i.Source = ImageSource.FromFile(some.png); // Needs to be from folder on local disk
grid.Children.Add(i, c, r);

我发现的大多数文章都解释了如何将图像与应用程序捆绑在一起作为源代码的一部分;我需要再次将它们从文件夹中显示在应用程序中,而无需将它们与应用程序捆绑在一起。用户应该能够将更多图像添加到文件夹中,并且他们可以在应用程序中工作而无需重新编译/重新安装 - 就像图像库一样。

编辑:我能够使用 PCLStorage https://github.com/dsplaisted/pclstorage成功读取文本文件。有没有办法将它连接到 Xamarin 表单图像?

4

2 回答 2

5

您需要编写一个特定于平台的类来读取图像并返回 StreamImageSource 可以使用的流。然后,您可以使用DependencyService将此行为公开给您的 Forms PCL。

或者,您可以使用PCLStorage

  var f = await FileSystem.Current.LocalStorage.GetFileAsync (path);

  Stream s = await f.OpenAsync (FileAccess.Read);
  image.Source = ImageSource.FromStream(() => s);
于 2016-04-09T21:34:08.207 回答
0

基本上,你不能。如果您不将图像与应用程序捆绑在一起,则必须以某种方式将图像传输到应用程序。最常见的情况是您在某处的 Web 服务器上提供这些图像,应用程序从该 Web 服务器下载图像。

于 2016-04-09T21:19:42.153 回答