为什么我的图片没有以正确的尺寸显示?

时间:2018-03-24 20:59:52

标签: xamarin.forms xamarin.ios

我的资源文件夹中的磁盘上有2张图片:send@3x.png和send@2x.png。 3x是64x64,2x是32x32。我在使用按钮并设置其图像时出现了一些问题,其中按钮尺寸小于图像尺寸。所以我决定只使用一个图像并添加一个轻击手势。问题是我不能为我的生活弄清楚如何让图像以正常大小显示。它会将图像大小调整为16x16。我所做的只是:

var imageSend = new Image {Source = "send"}

我将图像添加到我的相对布局,仅设置X / Y约束。图像显示为16x16。我在Y约束中设置了一个断点,只是为了好玩,看看为图像调用.Measure的结果:它返回16x16。我尝试将请求的宽度/高度设置为32,但有两个问题:

  1. 不起作用。图像显示为相同的大小,并且出于某种奇怪的原因从调用Measure中显示的大小显示为32x16
  2. 我不想硬编码大小。图像应该是其自然尺寸的大小。
  3. 如何以原始尺寸显示图像?

    编辑:只是为了好玩我将图像尺寸加倍为128x128和64x64。现在图像显示为32x32。为什么?我没有那么大的图像。

1 个答案:

答案 0 :(得分:1)

您的问题不是真正的问题,与iOS处理图像资源的方式有关。

@ 2x和@ 3x对于iOS来说意味着这些图像是原始图像大小的2倍(2倍)和3倍(3倍),因此当您说imagename@2x.png并且其大小为32x32时,iOS会计算出原始尺寸为16x16。

不久前你需要3张图片:

@ 1x原始大小 @ 2x是原件尺寸的两倍 @ 3x原始尺寸的3倍

即使你没有在项目中使用@ 1x图像,你也需要使用它的大小作为基础,因为这是iOS的目的。

例: 你想要一个尺寸为45x90的图像你的@ 2x和@ 3x图像的尺寸分别为90x180和135x270。

因此,当您发现将图像加倍时,修复了问题。

有关iOS图像分辨率的更多信息here

希望这会有所帮助.-