【问题标题】:Mobile App development - Orientation , Resolution and Width/Height移动应用程序开发 - 方向、分辨率和宽度/高度
【发布时间】:2012-12-25 03:58:57
【问题描述】:
Apple 网站称 iPhone 5 显示屏的分辨率为 1136 x 640 像素,分辨率为 326 ppi。通常分辨率实际上是拼写(宽度 x 高度)。在 iPhone 5 中,当我们以纵向模式握住手机时,我们知道 1136 是高度,640 是宽度。
我正在开发一个 Android 项目,现在我对这些移动设备分辨率感到困惑。我的应用仅针对纵向:1280x720、960x540、960x540、800x480、1920x1080、1280x720、1280x720、1280x720、960x540、960x540
我的问题是:
当我们说 1136 x 640 时,这意味着横向模式下设备的宽度 x 高度 - 正确吗?
将移动应用程序设计为仅针对一种分辨率 320x480(仅限纵向)并强制设备以该 320x480 分辨率运行是个好主意吗?我正在使用的库支持固定分辨率模式,它被称为“设计分辨率”,接受 (wxh)。
【问题讨论】:
标签:
mobile
resolution
ui-design
【解决方案1】:
回答第一个问题:是的,当 Apple 说 1136 x 640 像素分辨率时,它们的意思是横向模式下的宽度乘高度。
回答第二个问题:虽然不建议您将应用设计为仅在一个方向(例如纵向模式)工作,但如果这是您的应用所需要的,这是可以接受的。请参阅 Apple Human Interface Guidelines。他们说,如果您确实选择只支持一个方向,请确保在设备旋转 180 度时也支持该方向。也就是说,确保当用户将设备倒置时它会翻转。
强制使用比设备能够显示的分辨率更小的分辨率,这绝不是一个好主意。请参阅 Android Core App Guidelines,它说您应该使用整个屏幕,并建议您尽可能支持两种方向。
【解决方案2】:
我会说开发一个应用程序仅针对一个方向是可以接受的做法,但在布局或代码中强制该方向,这样当用户旋转设备时它不会破坏布局。在考虑不同的屏幕分辨率时,您需要考虑所有潜在用户的可能性。如果您知道设备分辨率在所有设备上都是相同的,那么无论如何只需要为此编写代码。如果它会改变,你会想要考虑所有的。由于您使用的是纵向,因此分辨率将被标记为 640x1136。看起来你的最小目标是 480x800,最大是 1080x1920,所以我建议在所有 3 种尺寸上设置模拟器,并进行相应的测试。
【解决方案3】:
无法更改实际的设备分辨率(除非您使用的是 crt 显示器)。也就是说,如果您将应用设计为固定分辨率,那么您的代码(或库)应该缩放/裁剪您的设计以适应实际屏幕。
请记住,按比例缩小会降低图像质量,但按比例放大(至更高分辨率)会导致像素化(像素显示为正方形)。
另一方面,缩放使用 cpu(或 gpu),更高的分辨率需要更多的处理能力。
因此,根据您的应用,您应该选择在高分辨率设备上看起来不会太差并且在处理能力较低的设备上仍能正常运行的分辨率
如果您能提供有关您正在使用的库的更多信息,那就太好了。
【解决方案4】:
适用于 Eclipse 的最新 Android 布局编辑器让您可以像在所有屏幕尺寸下一样查看屏幕。如果您只想为单一分辨率开发并在其他屏幕尺寸下保持原样,则不应使用 fill_parent 和 match_parent,而应使用 wrap_content,这样您的元素会保持相同的尺寸。不要使用基于屏幕大小的元素动态放置。
如果你想支持其他屏幕尺寸,那么你会做与上面提到的相反的事情。