【发布时间】:2017-09-14 23:35:55
【问题描述】:
我完成了我的应用程序的开发,使用了非常适合模拟器中的 iphone 6 的表单组件布局。我结合使用了主题样式(始终为 Base Resource)和一些外观和感觉的编码调整。
当我在 iphone 5 上运行它时,我天真地期望显示屏会缩小以适应浏览器应用程序,但我的组件(主要是标签)却脱离了容器的边缘。恐慌。
我最终不得不测量显示器高度并从那里判断设备,并编码不同尺寸的组件以获得合适的尺寸。这需要一些时间。
在 AppStore 中的 TestFlight 旁边。作为更广泛测试的一部分,我决定将其安装在我的 iPad 3 上,结果发现布局组件渲染得非常小。恐慌。
我现在花了几天时间解决这个问题。我基本上使用这种方法来确定设备“类别”的类型,然后应用字体或字体图像等的大小。
public static ScreenSizeEnum getScreenSize() {
if (Display.getInstance().isTablet() && Display.getInstance().getDisplayHeight() > 2000) {
return ScreenSizeEnum.TABLET;
}
else if (Display.getInstance().getDisplayHeight() < 950) {
return ScreenSizeEnum.SMALL;
} else if (Display.getInstance().getDisplayHeight() > 949 && Display.getInstance().getDisplayHeight() < 1200) {
return ScreenSizeEnum.MEDIUM;
} else {
return ScreenSizeEnum.LARGE;
}
}
不出所料,这并非万无一失。 Ipad 6 plus 不被识别为平板电脑,但显示高度较大,但其中一款 Nexus 是平板电脑,但显示高度较小。
我的问题是,你到底是如何解决这个问题的?
平板电脑和手机有不同的尺寸,但重要的是无论外形尺寸如何,您仍然可以获得高质量的组件渲染。 CN1 KitchenSink 演示并没有真正解决这个问题。非常感谢。
【问题讨论】:
-
如果您可以分享一些屏幕截图来展示您遇到的问题,我可以提供一些关于如何改进布局以跨平台工作的建议。
-
嗨,史蒂夫,我们不再提供屏幕截图。本质上,在基本层面上,问题是我有一个屏幕在顶部显示标题,在中心显示一些核心文本,在南部显示页脚文本。在主题中,所有文本的字体都在 2 到 5 毫米之间。这适合 iphone 6 尺寸。在我们进行更改之前,当在 ipnone 5 上呈现时,文本离开了页面的边缘。在 ipad 上,页面上有很多多余的空间,所以看起来不平衡。因此我的解决方案是读取屏幕尺寸并减少\增加字体。这是最好/唯一的方法吗?
-
要添加,对于图像也是如此,因为您必须在屏幕上设置它们的大小。因此,在 ipad 上,你最终会得到很多空白空间,而在较小的手机上,它看起来会显得局促。那么,以编程方式将大小调整为屏幕大小的唯一方法又是什么?
标签: iphone ipad codenameone tablet