Codenameone 自定义工具栏问题

Codenameone 自定义工具栏问题,codenameone,Codenameone,我有一个自定义工具栏。我很难让它工作(设计方面)。我有几个问题要问 1) 我面临的主要问题是将菜单图标放置在其确切位置。当我在不同的设备上测试它时,它们之间的差距是不同的。我也使用了表格布局和网格布局作为菜单图标&在分层布局中使用徽标,但结果并不好 代码: 2) 我已经检查了宽度和首选宽度,它们不同。它会影响设计吗 int width = emergencyButton.getWidth(); //60 int preferredwidth = emergencyButton.getPrefer

我有一个自定义工具栏。我很难让它工作(设计方面)。我有几个问题要问

1) 我面临的主要问题是将菜单图标放置在其确切位置。当我在不同的设备上测试它时,它们之间的差距是不同的。我也使用了表格布局和网格布局作为菜单图标&在分层布局中使用徽标,但结果并不好

代码:

2) 我已经检查了宽度和首选宽度,它们不同。它会影响设计吗

int width = emergencyButton.getWidth(); //60
int preferredwidth = emergencyButton.getPreferredW(); //74
3) 在上面的代码中,我使用bg图像高度来设置工具栏的高度。“containerTitle.setPreferredH(titleImage.getHeight());”这是设置高度的好方法吗?因为我测试过的安卓手机的高度变化很小,但是在标签上看起来非常大,我在不同的模拟器中测试过,高度差别很大。如何在普通工具栏中设置工具栏高度

Image titleImage = theme.getImage("toolbar_bg.jpg");
containerTitle.getAllStyles().setBgImage(titleImage);
containerTitle.getAllStyles().setBackgroundType(Style.BACKGROUND_IMAGE_TILE_HORIZONTAL);
containerTitle.setPreferredH(titleImage.getHeight());

ScaleImageButton ruslanLogo = new ScaleImageButton();

toolbar.setTitleComponent(LayeredLayout.encloseIn(containerTitle,
        FlowLayout.encloseCenter(ruslanLogo)));
4) 如何设置图标的宽度

Image emergencyImage = theme.getImage("emergency.png");
Button emergencyButton = getButton(emergencyImage);

如果我只是这样做,一些设备的图标太大。如果我缩放它,例如:emergencyImage.scaledWidth(screenwidth/8),图像质量很差。如果我像emergencyButton.setPreferredW(100)一样设置preferredW,img宽度在不同的设备中变化很大。PS主题中的图像保存为多图像

设置首选宽度/高度是有问题的,因为这意味着反向维度,可能有很多含义。我注意到你用了:

Image ruslanLogoImage = theme.getImage("ruslanLogo.png").scaledWidth(toolbar.getPreferredH() - 180);
它根据首选高度而不是
宽度/5
或类似的设置宽度。在工具栏构造完成之前,它还会根据首选高度设置值,这样事情的表现就会有所不同


首选宽度包括可能影响设计的填充。我建议在设计器中创建一个中心对齐的0 padding/margin UIID,并将其设置为所有组件,以消除padding/margin差异并缩短代码。

设置首选宽度/高度是有问题的,因为它意味着反向尺寸,可能会有很多影响。我注意到你用了:

Image ruslanLogoImage = theme.getImage("ruslanLogo.png").scaledWidth(toolbar.getPreferredH() - 180);
它根据首选高度而不是
宽度/5
或类似的设置宽度。在工具栏构造完成之前,它还会根据首选高度设置值,这样事情的表现就会有所不同

首选宽度包括可能影响设计的填充。我建议在设计器中创建一个中心对齐的0 padding/margin UIID,并将其设置为所有组件,以消除padding/margin差异并缩短代码