我已经编程了一段时间,但我最近刚开始开发移动设备和平板电脑的应用程序。我正在使用Marmalade为平板电脑和手机开发跨平台应用。 但我的问题更具概念性而非技术性。
首先让我告诉你一些我的应用程序。我想开发一个向孩子们介绍动物的应用程序。每只动物都有一个小故事。我设计了1072 x 768尺寸的每只动物。由于我的所有设计都是矢量,我可以很容易地改变图形的尺寸。
我的问题是我应该如何开发我的应用以在所有设备上完美显示?新iPad中的Retina显示屏为2048 x 1536,iPad 2和iPad 1分辨率为1024×768,iPhone分辨率为960 x 640,三星Galaxy Tab分辨率为1280 x 800等(不同设备(平板电脑或手机)有不同分辨率)
克服此问题只有两种选择,AFAK:
1-设计多个布局(960 x 640和1024 x 768),并根据每个设备切换到最近的分辨率,并在屏幕上拉伸布局。在这种情况下,Galaxy Tab用户将看到略微变形的图像,iPad 2用户将看到完美的图像。
2-根据显示尺寸重新排列图形的图层,而不是有多个固定的布局可供选择。实现这一点有点困难,我要将我的图像更改为略大于1024 x 768,所以根据最终平台,我可以在必要时显示隐藏部分。
你觉得伙计们怎么样?我需要使用哪种方法?还有其他办法可以解决这个问题吗?答案 0 :(得分:2)
我无法代表Android,但iOS图形渲染与分辨率无关(基于每个设备系列)。虽然,您面临的主要挑战是渲染矢量图像,因为iOS的图像文件是PNG。没有内置的SVG渲染器,但有an attempt尝试解决此问题(尽管根本不支持渐变)。基于CoreGraphics或UIKit的实现将以1024x768点呈现1024x768图像,无论屏幕是否可以保持2048x1536像素,因为它以点而不是像素运行。
虽然你是对的,但是需要针对某些形状因素进行更改(对于基于iOS的设备,您需要至少2个,对于Android形状因子,可能需要3或4个)。您不一定要根据屏幕的确切规格设计图形,而是支持各种宽高比。
答案 1 :(得分:2)
在更多地研究了这个主题之后,我找到了一个解决我的问题的方法,它有不同的分辨率和宽高比。我想与您分享我的计划,但请注意,这不是解决问题的一般方法。这只是我决定为这个特定项目处理这个问题的方式。
首先让我们来看看我们正在处理什么。 Here列出了市场上所有常见的智能手机和平板电脑。使用this article,您可以轻松找到每种分辨率的宽高比。
在研究这个列表后,我意识到我必须处理的最大宽高比是16:9(~1.77),最低宽高比是4:3(~1.33)。我还要处理的最大分辨率是2048×1536(iPad 3或新iPad)
所以我决定设计尺寸为2760×1536的图形,保持16:9(~1.77)的宽高比,但我的重要精灵和图形只能放入2048px(4:3或~1.33宽高比或最低宽高比)。
换句话说,我的背景填充了所有2760px的宽度,但我的精灵和图形是必不可少的,并且所有不同设备中的所有用户必须查看它应该放置在2048像素宽度,以保持3:4宽高比(最低宽高比)
然后根据每个屏幕分辨率,我只需要调整我的图形大小以适应设备分辨率。对于1024×600分辨率(16:9宽高比)的Android设备,我只应将图形调整为设备分辨率。对于iPad 3,我根本不需要调整图形大小。等等。同样重要的是,在所有设备中,我水平显示屏幕中心的图形,因为我的屏幕的右边距和左边距不包含任何重要的图形或精灵。
此答案也发布在Marmalade论坛here。
答案 2 :(得分:1)
如果您只是为iOS开发,则可以在创建ipa时禁用原生分辨率支持。此选项可让您在iPad上显示2x按钮,这将拉伸您的应用程序,如果您使用了矢量图形,它看起来会很好。
另一种方法可能是针对不同的屏幕大小使用不同的资产,就像我以前在Android中所做的那样。