Iphone 手机和平板电脑的Codenameone样式布局

Iphone 手机和平板电脑的Codenameone样式布局,iphone,ipad,codenameone,tablet,Iphone,Ipad,Codenameone,Tablet,我完成了应用程序的开发,使用了一个表单组件布局,非常适合模拟器中的iPhone6。我结合使用了主题样式(总是基本资源)和一些编码的外观调整 当我在iPhone5上运行此功能时,我原本天真地期望屏幕缩小到适合的程度,正如你可能在浏览器应用程序中所期望的那样,但是我的组件(标签)却从容器边缘脱落了。恐慌 最后,我不得不测量显示器的高度,从那里判断设备,并对不同尺寸的部件进行编码,以获得合适的尺寸。这花了一些时间 在AppStore中的TestFlight旁边。作为更广泛测试的一部分,我决定在iPad

我完成了应用程序的开发,使用了一个表单组件布局,非常适合模拟器中的iPhone6。我结合使用了主题样式(总是基本资源)和一些编码的外观调整

当我在iPhone5上运行此功能时,我原本天真地期望屏幕缩小到适合的程度,正如你可能在浏览器应用程序中所期望的那样,但是我的组件(标签)却从容器边缘脱落了。恐慌

最后,我不得不测量显示器的高度,从那里判断设备,并对不同尺寸的部件进行编码,以获得合适的尺寸。这花了一些时间

在AppStore中的TestFlight旁边。作为更广泛测试的一部分,我决定在iPad3上安装,结果发现布局组件都非常小。恐慌

我现在花了几天时间来解决这个问题。我基本上使用这种方法来确定设备“类别”的类型,然后应用字体或字体图像的大小等

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;
    }
}
publicstaticscreensizeneum getScreenSize(){
if(Display.getInstance().isTablet()&&Display.getInstance().getDisplayHeight()>2000){
返回screensizeneum.table;
}
else if(Display.getInstance().getDisplayHeight()<950){
返回屏幕Sizenum.SMALL;
}else if(Display.getInstance().getDisplayHeight()>949&&Display.getInstance().getDisplayHeight()<1200){
返回screensizeneum.MEDIUM;
}否则{
返回screensizeneum.LARGE;
}
}
毫不奇怪,这不是万无一失的。iPad6plus不被认为是平板电脑,但它的显示高度很大,而Nexus的其中一款是平板电脑,但显示高度很小

我的问题是,你到底是如何解决这个问题的?

平板电脑和手机有不同的尺寸,但重要的是,无论形状因素如何,都能获得高质量的组件渲染。
CN1 KitchenSink演示并没有真正解决这个问题。非常感谢。

从对问题的描述来看,你似乎认为平板电脑是一款“大手机”,这是一种错误的看法。平板电脑的密度与手机相似,但以英寸为单位的空间更大,这意味着您需要设计应用程序,以便更有效地利用额外的空间

下面是同一个厨房水槽演示的两个屏幕截图,一个运行在iPad上,另一个运行在iPhone上。注意,当我们调整UI以使用额外的空间时,UI的外观非常不同。图像(如多幅图像)和字体由密度而不是像素数量决定,因为目标是使用额外的空间,而不是用更大的图像/文本填充屏幕


如果您可以分享一些屏幕截图来演示您遇到的问题,我可以提供一些关于如何改进布局以跨平台工作的建议。嗨,Steve,我们已经没有屏幕截图了。基本上,在一个基本层面上,问题是我有一个屏幕,上面显示一个标题,一些核心文本在中间,页脚文本在南部。所有文本的字体,在主题中,在2和5毫米之间。这适合iphone6的尺寸。在进行更改之前,在ipnone 5上呈现时,文本会离开页面边缘。在ipad上,页面上有很多多余的空间,所以看起来不平衡。因此,我的解决方案是读取屏幕大小并减少\增加字体。这是最好的/唯一的方法吗?要补充的是,图像也是如此,因为您必须在屏幕上设置它们的大小。因此,在ipad上,你可能会有很多空白空间,而在小型手机上,它可能看起来很拥挤。那么,是否只有通过编程将大小调整为屏幕大小的方法?