【问题标题】:Value of providing images in multiple resolutions and how to describe them in XAML以多种分辨率提供图像的价值以及如何在 XAML 中描述它们
【发布时间】:2013-05-06 18:34:28
【问题描述】:

我正在将 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"/> 那样指定原始的预缩放图像的尺寸。这似乎不自然,因为资产没有这些维度——这是预期的方式吗?

谢谢。

【问题讨论】:

    标签: windows-phone-8 windows-phone


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      几天前我遇到了同样的困惑。 “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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-19
        • 2012-09-12
        • 1970-01-01
        • 2020-08-23
        • 2012-11-07
        • 2014-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多