【问题标题】:Blackberry App Appearance VS Facebook App黑莓应用外观 VS Facebook 应用
【发布时间】:2012-03-30 02:18:42
【问题描述】:

我正在使用 RIM 的内置字段管理器。 (SDK 7.0)

然而效果却令人震惊。布局很糟糕,我不知道如何自定义它。 您可以看到我的应用程序与 facebook 应用程序的区别。他们是否使用了内置的东西,如果是的话,如何使用?如果不是,我该怎么做?

我将如何让我的表单看起来更好。我尝试通过多种方式修改 Styles 参数。

当前代码:

    final BasicEditField UserID = new BasicEditField( "User ID:", "example");
    final BasicEditField UserName = new BasicEditField( "Username:", "");
    final BasicEditField Password = new PasswordEditField( "Password:", "example" );

    VerticalFieldManager loginFields = new VerticalFieldManager(FIELD_HCENTER |FIELD_VCENTER );
    loginFields.add( UserID ); 
    loginFields.add( UserName ); 
    loginFields.add( Password ); 

    ButtonField Login = new ButtonField( "Login", ButtonField.CONSUME_CLICK | ButtonField.FIELD_HCENTER );
    loginFields.add( Login );

【问题讨论】:

  • 一个提示可能是 Facebook 应用程序的大小,3MB。制作独特的 UI 需要大量的图形和软件工作。

标签: facebook user-interface layout blackberry


【解决方案1】:

您可以使用以下代码作为起点来创建精美的登录屏幕:

public loginScreen() {

    super(MainScreen.VERTICAL_SCROLL | MainScreen.VERTICAL_SCROLLBAR);

    vMgr = (VerticalFieldManager)getMainManager();

    XYEdges mgrThickPadding = new XYEdges(4, 4, 4, 4);
    Border mgrRoundedBorder = BorderFactory.createRoundedBorder(mgrThickPadding, Border.STYLE_SOLID);
    Background bg = BackgroundFactory.createSolidBackground(Color.LIGHTSTEELBLUE);
    vMgr.setBackground(bg);
    vMgr.setBorder(mgrRoundedBorder);

    setTitle("Login Screen");

    XYEdges thickPadding = new XYEdges(4, 4, 4, 4);
    Border roundedBorder = BorderFactory.createRoundedBorder(thickPadding, Border.STYLE_SOLID);

    Background solidBackground = BackgroundFactory.createSolidBackground(Color.LIGHTGRAY);
    this.setBackground(solidBackground);


    usernameFld = new EditField("Username: ","", 20, BasicEditField.NO_NEWLINE);
    usernameFld.setBorder(roundedBorder);
    usernameFld.setBackground(solidBackground);

    passwordFld = new PasswordEditField("Password: ","", 20, 0); 
    passwordFld.setBorder(roundedBorder);
    passwordFld.setBackground(solidBackground);

    FieldChangeListener listener = new FieldChangeListener() {

        public void fieldChanged(Field field, int context) {
            ButtonField buttonField = (ButtonField) field;
            System.out.println("Button pressed: " + buttonField.getLabel());

            if (field == loginBtn)
            {
                // Do Login actions
            }
        }
    };

    loginBtn.setMinimalWidth(200);
    loginBtn.setChangeListener(listener);

    vMgr.add(usernameFld);
    vMgr.add(passwordFld);           
    vMgr.add(loginBtn);
}

【讨论】:

  • 刚刚尝试了您的代码,并进行了一些调整以使其运行。我必须说,它好多了!绝对可以在我的标准表格上使用。我要玩弄它,并尝试将其居中等。非常感谢! :)
【解决方案2】:

您应该使用自定义组件创建这样的 UI。您也可以使用fieldsetBordersetBackgound 属性。

这个SO link 提供了有关黑莓用户界面设计的详细信息。它应该对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多