2010-05-22 2 views
2

Je développe gestionnaire de barre d'outils personnalisée, mais je veux régler les champs d'alignement pour centrer pas aligné sur la gauche, des conseilsoutil interface utilisateur Blackberry barre: champs alignement

ci-dessous est le code de la barre d'outils

package galaxy.bb.ui.container; 

import net.rim.device.api.ui.Color; 
import net.rim.device.api.ui.Graphics; 
import net.rim.device.api.ui.XYEdges; 
import net.rim.device.api.ui.container.HorizontalFieldManager; 
import net.rim.device.api.ui.decor.Background; 
import net.rim.device.api.ui.decor.BackgroundFactory; 
import net.rim.device.api.ui.decor.Border; 
import net.rim.device.api.ui.decor.BorderFactory; 

public class ToolBarManager extends HorizontalFieldManager { 
private int bgColor = Color.BLACK; 
private int borderColor = Color.WHITE; 
private int borderStyle= Border.STYLE_FILLED; 

public ToolBarManager(){ 
    super(USE_ALL_WIDTH); 
    } 
public ToolBarManager(int bgColor) { 
    super(USE_ALL_WIDTH); 
    this.bgColor = bgColor; 
} 
public ToolBarManager(int bgColor, int borderStyle) { 
    super(USE_ALL_WIDTH); 
    this.bgColor = bgColor; 
    this.borderStyle = borderStyle; 
} 


public int getBgColor() { 
    return bgColor; 
} 

public void setBgColor(int bgColor) { 
    this.bgColor = bgColor; 
} 


public int getBorderColor() { 
    return borderColor; 
} 

public void setBorderColor(int borderColor) { 
    this.borderColor = borderColor; 
} 

public int getBorderStyle() { 
    return borderStyle; 
} 

public void setBorderStyle(int borderStyle) { 
    this.borderStyle = borderStyle; 
} 

protected void paint(Graphics graphics) { 
    super.paint(graphics); 
    XYEdges padding = new XYEdges(5, 5, 5, 5); 

    Border roundedBorder = BorderFactory.createRoundedBorder(padding, 
      borderColor, borderStyle); 
    this.setBorder(roundedBorder); 
    Background bg = BackgroundFactory.createSolidBackground(bgColor); 
    this.setBackground(bg); 

} 

} 

Répondre

2

Vous pouvez forcer l'affichage des champs au centre en spécifiant FIELD_HCENTER lors de la création de chaque champ. Ou en utilisant FIELD_HCENTER lors de la création du gestionnaire. Dans ce dernier cas, le gestionnaire sera lui-même centré, mais chaque champ sera ajusté à gauche. Il s'agit principalement des mêmes résultats finaux, mais dans certaines conditions, il peut être affiché différemment.

0

Vous pouvez aller de l'avant avec le positionnement du contenu à la position centrale

pour par exemple:

Quand je veux placer un champ au centre de l'écran, alors je ne

(Display.getWidth()-field.getWidth())/2 

Vous pouvez essayer ce positionnement, si cela vous aide dans votre cas.

Questions connexes