0

我正在将 WP7 应用程序移植到 WP8 并且图标在非 WVGA 屏幕上变得模糊。我希望应用程序具有清晰的图标。我一直在阅读 MSDN 上的Multi-resolution guide以获取有关执行此操作的指导,但我还不完全清楚。

  • 它建议仅提供 WXGA 资产。为每种分辨率提供图像是否有任何价值(例如:logo.screen-wvga.png、-wxga.png、-720p.png)?生成每个分辨率对我来说相当容易,而且我并不担心增加包大小。我想知道如果操作系统不按比例缩小资产是否有望具有更高的质量(有时?)。这不适用于需要填充屏幕区域的背景图像——它适用于整个应用程序中使用的徽标和中小型图标。

  • 假设我只制作了 WXGA 版本的图标。在 XAML 中描述图像的正确方法是什么?如果我在 WP7 上的 WVGA 屏幕的原始图像是 37px x 36px,我通过将尺寸乘以 1.6 来生成 WXGA;我的图像现在是 59 像素 x 58 像素(四舍五入)。如果我有<Image Source="MyWxgaIcon.png"/>并在 WXGA 模拟器上运行它,那么操作系统会将它炸毁另一个 1.6 倍。似乎我需要像这样指定原始的预缩放图像的尺寸<Image Soruce="MyWxgaIcon.png" Width="37" Height="36"/>。这似乎不自然,因为资产没有这些维度——这是预期的方式吗?

谢谢。

4

2 回答 2

0

WP8 多分辨率的工作方式是始终拥有 480 个逻辑像素的宽度(以及 800 或 853.3 像素的高度),并且所有元素都使用逻辑像素进行描述。没有提供多分辨率资产的内置方法。推荐的方法是提供高分辨率资产并让操作系统按比例缩小它们。更复杂的解决方案需要一些代码。

另请参阅http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206974(v=vs.105).aspx

于 2013-06-30T20:13:56.947 回答
0

几天前我遇到了同样的困惑。“适用于 Windows Phone 8 的多分辨率应用程序”一文实际上并没有明确指出如果只提供 WXGA 资产,我们如何让 XAML 正确显示图像。我通过以下 2 个教程找到了解决方案:

http://www.silverlightshow.net/items/Windows-Phone-8-Multiple-Screen-Resolutions.aspx http://msdn.microsoft.com/en-us/library/aa970269.aspx

事实证明,您不需要明确声明高度:

<Image Source="MyWxgaIcon.png" Width="37" />

但是,当您在 WVGA 设备上运行应用程序时,这种方式应该会消耗更多内存。在这种情况下,图像会按比例缩小以显示,但以像素为单位的实际大小仍然保持不变。

所以更优化的方式是:

<Image Width="37">
    <Image.Source>
        <BitmapImage DecodePixelWidth="37" UriSource="MyWxgaIcon.png" />
    </Image.Source>
</Image>
于 2013-07-29T16:46:55.127 回答