Codenameone物理设备与模拟器

时间:2016-02-05 06:37:08

标签: codenameone

您好我刚用codenameone开发了一个应用程序,它在模拟器中工作得很好但是当我在物理设备上安装相同的应用程序时,绘制的所有对象的大小都会减少。我想保持与模拟器中相同的大小。 使用的模拟器皮肤是:appleipadamini 使用的物理设备是:Apple ipad mini 4 选择的模拟器高度和宽度为1000 X 700,但安装在物理设备上时,它只是屏幕的一半。

第二张图片是物理设备

请帮助!!!!!!!!!!!!!!!!!!

您好,正如您所回答的那样,我将像素值从1000 X 700更改为实际设备的精确大小2048 X 1536.但是在呈现表单时没有出现错误。

An exception occurred during transition paint this might be valid in case of a resize in the middle of a transition.
 java.lang.NullPointerException at sun.java2d.SunGraphics2D.getClipBounds(Unknown Source)
 at sun.java2d.SunGraphics2D.getClipBounds(Unknown Source)
 at com.codename1.impl.javase.JavaSEPort.getClipX(JavaSEPort.java:3675)
 at com.codename1.ui.Graphics.getClipX(Graphics.java:171)
 at com.codename1.ui.Component.paintInternalImpl(Component.java:1255)
 at com.codename1.ui.Component.paintInternal(Component.java:1242)
 at com.codename1.ui.Container.paint(Container.java:1290)
 at com.codename1.ui.Component.internalPaintImpl(Component.java:1293)
 at com.codename1.ui.Component.paintInternalImpl(Component.java:1267)
 at com.codename1.ui.Component.paintInternal(Component.java:1242)
 at com.codename1.ui.Component.paintInternal(Component.java:1210)
 at com.codename1.ui.Component.paintComponent(Component.java:1488)
 at  com.codename1.ui.animations.CommonTransitions.paint(CommonTransitions.java:1164)
 at com.codename1.ui.animations.CommonTransitions.paint(CommonTransitions.java:723)
 at com.codename1.ui.Display.paintTransitionAnimation(Display.java:922)
 at com.codename1.ui.Display.edtLoopImpl(Display.java:1041)
 at com.codename1.ui.Display.mainEDTLoop(Display.java:994)
 at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
 at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
 [EDT] 0:0:0,1 - java.lang.ArithmeticException: / by zero
 [EDT] 0:0:0,1 - java.lang.ArithmeticException: / by zero

1 个答案:

答案 0 :(得分:0)

您正在使用代表iPad Mini 1的皮肤,并在具有两倍像素数量的新视网膜设备上运行。

您无法依赖屏幕上的像素数量,需要编写代码以支持不同的密度。这就是为什么我们有布局管理器,多图像等。这在developer guide中有一定程度的讨论。