我有一个Xamarin Forms(2.0)Android应用程序,我正在尝试显示图像。我有一个名为icon-pages-r1.png
的图标,我试图使用以下代码显示:
<Image Source="icon-pages-r1.png" />
但图像未显示。当我将源更改为Icon.png
(默认的Xamarin图标)时,它确实有效。
图像是半透明的PNG(因此中间是彩色图标,周围是透明的),它是46x46,在Windows中,它显示为项目类型PNG文件。我尝试在Paint中打开图像并重新保存(这会杀死透明度),但这也不起作用。图片的Build Action
为AndroidResource
,Copy to Output Directory
设置为Do not copy
。
有谁知道为什么我无法在我的应用中显示此图片?
答案 0 :(得分:18)
您无法在Xamarin Android的图片名称中使用连字符。摆脱连字符(在文件名和图片参考中),你将被设置。
答案 1 :(得分:10)
对于其他可能会在这里结束的人......
确保图像文件实际上是项目的一部分(Resources \ drawable),并且构建操作是AndroidResource。
答案 2 :(得分:5)
当绑定到android中图像资源的名称时,我发现它必须是:
答案 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;构建并运行
一般检查点
按如下方式创建内容页面
<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
<Label Text="Pre" />
<Image Source="abstracttriangleg.png"
Aspect="AspectFill" VerticalOptions="End" HorizontalOptions="CenterAndExpand"/>
<Label Text="Post" />
</StackLayout>
bin
和Obj
个文件。Android支持三种格式的位图文件:.png(首选),.jpg(可接受),。gif(不鼓励)。
您可以使用pngcrush,pngquant或zopflipng等工具减少PNG文件大小而不会丢失图像质量。所有这些工具都可以减少PNG文件的大小,同时保持感知的图像质量。
pngcrush工具特别有效。
要压缩JPEG文件,您可以使用packJPG和guetzli等工具。
参考: