如何在Windows 8上的Xamarin Forms中显示任意文件夹中的图像

时间:2016-04-09 20:24:06

标签: xamarin xamarin.windows

这可能是一匹死马,但我需要能够提供一个充满图像的本地文件夹OUTSIDE我的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表格图像?

2 个答案:

答案 0 :(得分:5)

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

或者,您可以使用PCLStorage

    int[][] results = IntStream.iterate(0, i -> i + 10)
            .limit(10)
            .mapToObj(i -> (int[]) IntStream.range(i, i + 10).toArray())
            .toArray(int[][]::new);

    System.out.println(Arrays.deepToString(results));

答案 1 :(得分:0)

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