2012-03-13 103 views
0

我正在使用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

回答

2

您可以使用下面的代碼爲起點創建一個奇特的登錄屏幕:

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

1

您應該使用的自定義組件這樣的創建UI。您還可以使用fieldsetBordersetBackgound屬性。

SO link給出了黑莓用戶界面設計的細節。它應該幫助你。