Xamarin表示图像未显示

时间:2016-03-02 18:18:19

标签: android image xamarin xamarin-forms

我有一个Xamarin Forms(2.0)Android应用程序,我正在尝试显示图像。我有一个名为icon-pages-r1.png的图标,我试图使用以下代码显示:

<Image Source="icon-pages-r1.png" />

但图像未显示。当我将源更改为Icon.png(默认的Xamarin图标)时,它确实有效。

图像是半透明的PNG(因此中间是彩色图标,周围是透明的),它是46x46,在Windows中,它显示为项目类型PNG文件。我尝试在Paint中打开图像并重新保存(这会杀死透明度),但这也不起作用。图片的Build ActionAndroidResourceCopy to Output Directory设置为Do not copy

有谁知道为什么我无法在我的应用中显示此图片?

5 个答案:

答案 0 :(得分:18)

您无法在Xamarin Android的图片名称中使用连字符。摆脱连字符(在文件名和图片参考中),你将被设置。

答案 1 :(得分:10)

对于其他可能会在这里结束的人......

确保图像文件实际上是项目的一部分(Resources \ drawable),并且构建操作是AndroidResource。

答案 2 :(得分:5)

当绑定到android中图像资源的名称时,我发现它必须是:

    资源/可绘制文件夹中的
  • 设置构建操作:AndroidResource
  • 将复制设置为输出:不复制
  • 不允许名称中的连字符
  • 名称区分大小写

答案 3 :(得分:1)

适用于iOS

第1步:将您的图片添加到ios中 - &gt;资源文件夹(如果没有创建它)

第2步; 右键点击图片 - &gt;属性 - &gt;构建行动 - &gt;设为“内容”

答案 4 :(得分:0)

我遇到了这个问题。我将MSBuild project build output verbosity设为Diagnostic。现在,当我搜索 OOM 时,我在“输出”窗口中找到了以下内容。

  

ImageRenderer:加载图片时出错:Java.Lang.OutOfMemoryError:无法分配带有2140744个空闲字节的571513228字节分配和92MB直到OOM

现在尝试了

  • 创建png图片,其尺寸小于 200KB 且小于 1400 X 1050 尺寸(用于测试目的)。

工作正常。

注意:“MSBuild项目构建输出详细程度”可以在工具 - &gt;下找到。选项 - &gt;项目和解决方案 - &gt;构建并运行

一般检查点

  • 阅读Local Images
  • 确保文件名只包含小写字母。
  • 将该png文件添加到Resources / drawable文件夹中。

按如下方式创建内容页面

<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
    <Label Text="Pre" />
    <Image Source="abstracttriangleg.png"  
           Aspect="AspectFill" VerticalOptions="End" HorizontalOptions="CenterAndExpand"/>
    <Label Text="Post" />
</StackLayout>
  • 清洁溶液。
  • 清除binObj个文件。

Resources说:

  

Android支持三种格式的位图文件:.png(首选),.jpg(可接受),。gif(不鼓励)。

Compress PNG and JPEG files说:

  

您可以使用pngcrush,pngquant或zopflipng等工具减少PNG文件大小而不会丢失图像质量。所有这些工具都可以减少PNG文件的大小,同时保持感知的图像质量。

     

pngcrush工具特别有效。

     

要压缩JPEG文件,您可以使用packJPG和guetzli等工具。

参考

  1. Android : Maximum allowed width & height of bitmap

  2. Android:java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM

  3. Handling Bitmaps