java - 黑莓对齐的布局设计问题

标签 java blackberry

我正在开发一个应用程序,我需要在Horizo​​ntalFieldManage中设置两个按钮。其中一个 Bitmap 应保持左侧,另一个 LabelField 应保持水平居中。在这里,我已经尝试了很多次,但无法在左侧设置第一个 Bitmap 所以你能帮我解决这个问题吗..

这是我的代码::

VerticalFieldManager VFM = new VerticalFieldManager(USE_ALL_WIDTH){
            public void paint(Graphics g) {
                g.setBackgroundColor(Color.WHITE);
                g.clear();
                super.paint(g);
            }
        };
        HorizontalFieldManager HFM = new HorizontalFieldManager(FIELD_HCENTER){
            public void paint(Graphics g) {
                g.setBackgroundColor(Color.WHITE);
                g.clear();
                super.paint(g);
            }
        };

        Bitmap logom1;
        logom1 = Bitmap.getBitmapResource("logo48X48.png");
        BitmapField imgField = new BitmapField(logom1,Field.FIELD_LEFT);
        LabelField RegistrationLbl = new LabelField("Registration",FIELD_HCENTER | FIELD_BOTTOM);

        FontFamily fontFamily[] = FontFamily.getFontFamilies();
        Font font = fontFamily[1].getFont(FontFamily.CBTF_FONT, 20);
        font = fontFamily[1].getFont(Font.BOLD, 25);
        RegistrationLbl.setFont(font);

        HFM.add(imgField);
        HFM.add(RegistrationLbl);

        VFM.add(HFM);
        add(VFM);

最佳答案

Signare 的一般解决方案可以工作,但左边距不太正确。在将标签添加到 HFM 对象之前,您需要添加的唯一调用是这些(为了清楚起见,分为两行):

int labelX = (Display.getWidth() - RegistrationLbl.getPreferredWidth()) / 2;
RegistrationLbl.setMargin(0, 0, 0, labelX - imgField.getPreferredWidth());

这假设它所在的类 (Manager) 占据整个屏幕宽度 (Display.getWidth())。

Read this for a good description of what margin is .

另外,请注意 setMargin() 在 6.0 之前的 API 中没有记录,但我相信它实际上可以在操作系统 4.5 左右使用(但是没有记录)。

编辑:顺便说一下,您正在分配font对象,然后立即将其分配给其他对象。这看起来也不正确,尽管它不会影响标签居中的问题。

另一个编辑:如 Rupak 的评论所示,此代码仅在您有固定方向显示时才有效。如果标签应该在设备方向变化时再次居中,那么您需要的不仅仅是这个。如果需要,请对问题添加更多说明,有人会提供帮助!

关于java - 黑莓对齐的布局设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11789856/

相关文章:

java - 如何打印导入的java库?

java - 无法使用 Selenium Java 将按键发送到数字输入字段

java - 通过java高效地压缩文件

blackberry - 使用视频控制在黑莓应用程序中捕获图片仅适用于模拟器,不适用于设备

java - 将 xml 文档作为参数传递给 xsl

java - 最好将jar添加到新模块或Android Studio项目的l​​ibs文件夹中

blackberry - 避免在单击按钮时显示菜单

需要 BlackBerry RIMAPPSA2 签名 key - 为什么?

css - 使移动浏览器更容易混合数字和字母输入

java - Blackberry 的 OCR 库