首页 文章

Xamarin表示图像未显示

提问于
浏览
12

我有一个Xamarin Forms(2.0)Android应用程序,其中我'm trying to show an image. I'有一个名为 icon-pages-r1.png 的图标,我试图使用以下代码显示:

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

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

图像是半透明的PNG(因此中间是彩色图标,周围是透明的),它也可以工作 . 图像的 Build ActionAndroidResourceCopy to Output Directory 设置为 Do not copy .

有谁知道为什么我不能在我的应用程序中显示此图像?

5 回答

  • 18

    您不能在Xamarin Android的图像名称中使用连字符 . 摆脱连字符(在文件名和图像引用中),你将被设置 .

  • 5

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

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

  • 1

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

    在Resources / Drawable文件夹中

    • set Build Action:AndroidResource

    • 设置复制到输出:不复制

    • 不允许名称中的连字符

    • 名称区分大小写

  • 10

    对于iOS

    Step 1: 将您的图片添加到ios - > Resources文件夹(如果没有创建它)

    Step 2; 右键单击图像 - >属性 - >构建操作 - >设置为"Content"

  • 0

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

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

    现在试过了

    • 创建 png 图像,其大小小于 200KB 且小于 1400 X 1050 (用于测试目的) .

    它工作正常 .

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

    General Checkpoints

    • 阅读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等工具 .

    References

相关问题