设为首页 收藏本站
查看: 966|回复: 0

【转】Windows Phone 8 分辨率支持

[复制链接]

尚未签到

发表于 2015-5-23 12:08:54 | 显示全部楼层 |阅读模式
  原文链接:微软原文
    因为做过android 的原因,学习Windows phone 8 开发的第一件事就是去查询了它支持的分辨率,看了微软的原文,分享一下。


  适用于:仅限于 Windows Phone 8。
  Windows Phone 8 支持具有 WVGA、WXGA 和 720p 分辨率的手机。这与仅支持 WVGA 分辨率的 Windows Phone OS 7.1 不同。本主题将介绍 Windows Phone 8 支持的分辨率,以及如何使用不同的分辨率开发面向手机的应用。
  
  本主题包含以下各节。


  • 支持的分辨率
  • 适应您的布局
  • 分辨率相关的背景和资产
  • 初始屏幕
  • 图块和应用图标
  • 相关主题




支持的分辨率



  下表描述了 Windows Phone 8 中支持的分辨率和纵横比。





  分辨率

  分辨率

  纵横比

  与 Windows Phone OS 7.1 相比的新增内容

  按比例缩放的分辨率



  WVGA


  480 × 800


  15:9


  无。这是 Windows Phone OS 7.1 唯一支持的分辨率。


  480 × 800




  WXGA


  768 × 1280


  15:9


  1.6x 方向缩放


  480 × 800




  720p


  720 × 1280


  16:9


  1.5x 方向缩放,高度增加 80 个像素(缩放后为 53 个像素)


  480 × 853


  下图所示为同一屏幕显示在具有不同分辨率的手机中。

DSC0000.gif



适应您的布局



  由于所有 Windows Phone OS 7.1 手机均具有相同的分辨率,您可以布局内容以使之在 Windows Phone OS 7.1 手机上显示良好,并确定它将在所有 Windows Phone OS 7.1 手机上显示良好。您无需考虑每个控件如何伸展和流动等内部问题。
  在 Windows Phone 8 中,您需要布局控件和其他 UI 元素,以使之在每种支持的纵横比中显示良好。因为 Windows Phone 8 手机具有两种纵横比(15:9 或 16:9),针对一种纵横比布局的控件可能在另一种纵横比下出现意外布局。
  若要使页面能在分辨率为 WVGA、WXGA 和 720p 的手机上正确显示,则不要硬编码控件的长和宽或边距。从工具箱中拖放控件后,请删除或仔细测试自动添加的边距。
  若要创建可适应布局,您可以使用像网格控件之类的容器。不是对控件的高和宽进行硬编码,而是将控件放置在网格中,并使用 * 和 Auto 值设置其行和列的高和宽。如此一来,应用可以拉伸或缩放控件以使之适合用户手机的高和宽。如果您对控件的高和宽进行硬编码,布局不适应其他分辨率。
  以下 XAML 显示使用网格控件实现这些准则的布局的代码。






XAML



  

DSC0001.gif View Code






































  




该应用具有适用于 WVGA、WXGA 和 720p 的动态布局。WVGA 和 WXGA 手机上的输出框具有相同大小,由于Height 属性被设置为 Auto,按钮将均匀收缩以适应剩余的可用空间。在 720p 分辨率下,按钮稍微高于其在 WVGA 和 WXGA 分辨率下的位置。  可以使用 MinHeight 和 MaxHeight 属性设置最小高度和最大高度。请务必记住,屏幕上的在任何方向上不足 8mm 的任何元素都将难以用手指可靠地按下。可以使用 MinHeight 属性和MinWidth 以确保交互式元素不会过度收缩。您可以组合这些属性,以允许 WVGA 分辨率下的布局收缩,但不可用于 720p 分辨率下的拉伸。




分辨率相关的背景和资源



  资源,如图形、视频、音频和图标等,在应用的大小中占据了很大比例。包括应用中所有分辨率的资产使用了应用的大量空间。对于大多数应用,我们建议仅包含 WXGA 资产。WXGA 资产的质量最高,并且它们将自动缩放以在其他分辨率下显示良好。
  由于 WXGA/WVGA 和 720p 分辨率的纵横比不同,某些情况下,您可能想要在应用中包含用于不同分辨率的独特背景图像。当您想要在应用中包含用于所有支持的分辨率的图像时,可先使用以下步骤以检测设备分辨率,然后在运行时加载相关的图像。
  在运行时加载分辨率相关的图像的步骤


  •   在项目文件中,添加用于 WVGA、WXGA 和 720p 分辨率的图像。在此示例中,我们将文件命名为 MyImage.screen-wvga.png、MyImage.screen-wxga.png 和 MyImage.screen-720p.png。

  •   将图像的“复制到输出目录”属性设置为“始终复制”。

  •   将名为 ResolutionHelper.cs 的类添加到项目,然后将以下代码复制并粘贴到新类中。






    C#









    View Code


    public enum Resolutions { WVGA, WXGA, HD720p };
    public static class ResolutionHelper
    {
    private static bool IsWvga
    {
    get
    {
    return App.Current.Host.Content.ScaleFactor == 100;
    }
    }
    private static bool IsWxga
    {
    get
    {
    return App.Current.Host.Content.ScaleFactor == 160;
    }
    }
    private static bool Is720p
    {
    get
    {
    return App.Current.Host.Content.ScaleFactor == 150;
    }
    }
    public static Resolutions CurrentResolution
    {
    get
    {
    if (IsWvga) return Resolutions.WVGA;
    else if (IsWxga) return Resolutions.WXGA;
    else if (Is720p) return Resolutions.HD720p;
    else throw new InvalidOperationException("Unknown resolution");
    }
    }
    }
      
      上述类使用 ScaleFactor 属性确定设备的分辨率。

  •   添加包含以下代码的名为 MultiResImageChooser.cs 的类。此类使用在上一步中创建的ResolutionHelper.cs 类来确定设备的分辨率。然后,它将返回新的 BitmapImage(从对应于检测到的分辨率的图像的 URI 中创建出)。






    C#









    View Code


    using System.Windows.Media.Imaging;
    public class MultiResImageChooserUri
    {
    public Uri BestResolutionImage
    {
    get
    {
    switch (ResolutionHelper.CurrentResolution)
    {
    case Resolutions.HD720p:
    return new Uri("Assets/MyImage.screen-720p.jpg", UriKind.Relative);
    case Resolutions.WXGA:
    return new Uri("Assets/MyImage.screen-wxga.jpg", UriKind.Relative);
    case Resolutions.WVGA:
    return new Uri("Assets/MyImage.screen-wvga.jpg", UriKind.Relative);
    default:
    throw new InvalidOperationException("Unknown resolution type");
    }
    }
    }
    }
      

  •   在 MainPage.xaml 中,添加 Image 元素并将其 Source 属性绑定到由 MultiResImageChooser.cs 类返回的 URI。






    XAML









    View Code






      

  •   在 App.xaml 的  元素中,添加以下 xmlns 命名空间映射。






    XAML










    xmlns:h="clr-namespace:MultiResSnippet"
      

  •   在 App.xaml 中,添加以下应用程序资源。



















      





初始屏幕



  若要显示所有分辨率的初始屏幕,则使用分辨率为 768 × 1280 的名为 SplashScreenImage.jpg 的单个图像文件。手机会自动将图像缩放至适当大小。
  如果想要提供各种像素的像素完美的初始屏幕,可以使用以下文件名添加图像:


  •   SplashScreenImage.Screen-WVGA.jpg

  •   SplashScreenImage.Screen-WXGA.jpg

  •   SplashScreenImage.Screen-720p.jpg

  所有初始屏幕图像必须包含在应用项目的根文件夹中。
  有关更多信息,请参见如何为 Windows Phone 创建初始屏幕。




图块和应用图标



  对于图块和应用图标,必须只包含适用于 WXGA 分辨率的图像。手机会自动将图像缩放为适用于 WVGA 和 720p 屏幕的合适大小。有关图块及其大小的更多信息,请参见 Windows Phone 的图块。




另请参见




其他资源


Windows Phone 的布局

Windows Phone 的图块  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-69818-1-1.html 上篇帖子: T430 Windows 8 的USB3.0无法识别 下篇帖子: Windows 8 RP来了!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表