黑莓应用程序外观VS Facebook应用程序

黑莓应用程序外观VS Facebook应用程序

问题描述:

我正在使用RIM内置的现场管理器。 (SDK 7.0)黑莓应用程序外观VS Facebook应用程序

但效果令人震惊。布局是可怕的,我不知道如何定制它。 你可以看到我的应用程序对facebook应用程序的区别。他们是否使用内置的东西,如果是这样的话?如果不是,我该怎么做类似?

我该如何去让我的表单看起来好多了。我曾尝试以多种方式修改Styles参数。

enter image description here

当前代码:

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); 
+2

一个提示可能是Facebook的应用程序,3MB的大小。制作独特的用户界面涉及许多图形和软件工作。 – Richard 2012-03-13 20:15:43

您可以使用下面的代码为起点创建一个奇特的登录屏幕:

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); 
} 
+0

只要给你的代码一个尝试,一些调整让它运行。我必须说,它好多了!在我的标准表格中明确可用。我会玩它,并尝试和中心等。非常感谢! :) – Doomsknight 2012-03-14 09:34:52

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

SO link给出了黑莓用户界面设计的细节。它应该帮助你。