UWP开发入门(六)——对多设备不同分辨率显示效果的讨论

简介: 原文:UWP开发入门(六)——对多设备不同分辨率显示效果的讨论  本篇不涉及具体代码,而是把实际开发UWP APP的过程中,遇到的不同设备,不同分辨率显示效果差异的问题进行讨论。希望能够抛砖引玉,和各位擦出一些火花。
原文: UWP开发入门(六)——对多设备不同分辨率显示效果的讨论

  本篇不涉及具体代码,而是把实际开发UWP APP的过程中,遇到的不同设备,不同分辨率显示效果差异的问题进行讨论。希望能够抛砖引玉,和各位擦出一些火花。

  蜀黍我目前是在做一套牛逼的UWP APP啦,目标是能跑在各种尺寸不同,分辨率不同的PCPhoneTablet上。无论是从代码的复杂度还是实现的难度来说,都只希望维护一套代码。

  在项目的初始阶段,美工MMTabletPhone各设计了一套界面,在对UWPAdaptive UI做了一些调研后,认为只要保持界面元素大致相同,以Phone为基准,在Tablet上做一个拉伸就可以了。

  然而在实际开发过程中仍然发现了一些问题。话说美工MMPhone按照640 x 480的分辨率设计,Tablet按照Surface Pro 32160 x 1440来设计。

  

  Tablet的话如上图,SplitView布局,最左边是Pane,然后中间再分两块内容区域。Phone的界面会藏起Pane,然后两块内容区域不再并排显示。很常见的UI设计,你们都懂的啦。

  首先这两个屏幕的纵横比是不一样的,同时整体布局也有很大差异。从PhoneTablet布局的整体切换呢,可以通过UWP新增的AdaptiveTrigger根据屏幕WidthHeight来触发更新布局的操作,问题不大。

  但是具体到设置元素大小时就遇到困难了。一开始美工MM贴心的给了两套Style……这在两套Style切来切去代码烦死人不说,这个用户体验也不好,窗口拖到一半东西突然Biu~的一声变大了,怪吓人的……

  那么我们就要确定一套Style为基准,同样的fontSize,同样的元素尺寸。结果问题出现了,以Tablet 2160 x 1440的设计稿为基准做出来的程序,在1080pPC480p的手机上都显得硕大无比,所有元素都给打了激素一样。

  紧急叫停之后,我们告诉美工MM1080p的分辨率来做Tablet。然后就发现Tablet看上去正常了,但480pPhone上仍然惨不忍睹硕大无比。同样的100px的长度,在TabletPhone上竟然不一致。使用Live Tree Explorer测量屏幕的大小发现,Phone的元素尺寸会有一个对应的缩放比例:

分辨率

屏幕尺寸

实际长度

比列

640 x   480

4

533.33   x 320

1.5 1

1280 x   720

5

640 x   360

2 1

1920 x   1080

6

768 x   431

2.5 1

 

  也就是480pPhone实际Width只有320px。我们以480pxWidth设计出来的界面,实际比1080pLumia 1520真实Width 431px还要大。

  但是这个缩放比列却又对文字无效,无效……无效……,fontSize写了多大,在各种屏幕上都是一个尺寸。当时蜀黍感觉蛋都要碎了。20151231日啊,蜀黍破天荒的加班了啊,因为第二年要给其他兄弟还有美工MM一个交代啊!

  苦思冥想啊,白头发都多了好几根……最终还是决定把问题简单粗暴化,采用640 x 460来设计Phone,即以720pPhone为基准。之所以舍弃480p是考虑lumia 530之类的老旧设备即将淘汰,Win10m最低端的Lumia 550也是720p了。

  然后保持Phone 720p设计稿上的元素和字体大小不变,平移到1080pTablet画布上再次进行布局。基本就等于将两份640 x 360大小的手机屏幕左右放置到1920 x 1080Tablet上。再做一些间距的调整,实际效果经多方研究表示可以接受。

  如果用户使用了480p的低端Phone1366 x 768的古董PC,那看上去的元素大小会稍稍放大。好在720p相对480p的跨度较小,理论上字符串和图片被截断的可能性不大。

  当用户使用了1080p以上的PhoneSurface Pro 4这样的Tablet,元素会显得更为细小精致,但针对触摸优化的UI绝对比视网膜屏MacBook上针对键鼠的软件来的要大。每次看公司同事的MacBook屏幕感觉我眼睛都要瞎了……(顺便黑一下,他们经常去修Mac……质量么……)

  那么本篇就到这里,虽然写得简单了点,但你真要写跨设备多分辨的UWP APP,嘿嘿还是从头再好好看一遍吧……

  另外打个广告,后面打算延续本篇的讨论,针对具体页面或控件给出实例分析,到时候要来点赞哦。当然我也可能挖坑不填……谢谢

目录
相关文章
|
7天前
|
容器 iOS开发 Linux
震惊!Uno Platform 响应式 UI 构建秘籍大公开!从布局容器到自适应设计,带你轻松打造跨平台完美界面
【8月更文挑战第31天】Uno Platform 是一款强大的跨平台应用开发框架,支持 Web、桌面(Windows、macOS、Linux)及移动(iOS、Android)等平台,仅需单一代码库。本文分享了四个构建响应式用户界面的最佳实践:利用布局容器(如 Grid)适配不同屏幕尺寸;采用自适应布局调整 UI;使用媒体查询定制样式;遵循响应式设计原则确保 UI 元素自适应调整。通过这些方法,开发者可以为用户提供一致且优秀的多设备体验。
18 0
|
3月前
|
编解码 安全 Android开发
探索iOS与Android开发的差异:从界面到性能
【6月更文挑战第10天】在移动应用开发的广阔天地中,iOS和Android两大平台各占山头,它们在设计理念、用户体验、性能优化等方面展现出独特的魅力。本文将深入探讨这两大系统在开发过程中的主要差异,从用户界面设计到性能调优,揭示各自背后的技术逻辑与创新策略,为开发者提供全面的视角和实用的开发指南。
|
4月前
|
监控 API 数据安全/隐私保护
屏幕监控软件开发指南:C++实现原理解析
在当今数字化时代,屏幕监控软件成为了企业管理和个人隐私保护的重要工具。本文将深入探讨如何使用C++语言实现屏幕监控软件,并解析其实现原理。我们将通过多个代码示例来说明其工作方式,最后将介绍如何将监控到的数据自动提交到网站。
160 3
|
9月前
|
算法 图形学
Unity——导航系统补充说明
Unity——导航系统补充说明
|
12月前
|
Web App开发 前端开发 JavaScript
SAP UI5 应用的屏幕尺寸检测工作原理深入剖析试读版
SAP UI5 应用的屏幕尺寸检测工作原理深入剖析试读版
|
iOS开发
iOS程序框架设计之皮肤切换功能(二)
iOS程序框架设计之皮肤切换功能
220 0
iOS程序框架设计之皮肤切换功能(二)
|
XML iOS开发 数据格式
iOS程序框架设计之皮肤切换功能(一)
iOS程序框架设计之皮肤切换功能
233 0
iOS程序框架设计之皮肤切换功能(一)
Silverlight“.NET研究” 2.5D RPG游戏技巧与特效处理:(十)空间分层战斗系统
  提到RPG中的空战系统,首先想到的当然是3D,这方面可是它的绝活。比如以之为核心噱头的《永恒之塔》;当然,在2.5D网游中也有着类似的实现,像《上海徐汇企业网站制作n lang="EN-US">西游记Online》,不过该游戏的空战仅仅是将战场(场景)变换到了空中而已,地面呈现的仅是会动的背景,类似的功能其实早就已出现在《大话西游》系列等著名的2D游戏中。
866 0
下一篇
DDNS