BlackBerry Forums Support Community               

Closed Thread
 
LinkBack Thread Tools
Old 10-25-2008, 04:29 AM   #1 (permalink)
Thumbs Must Hurt
 
Join Date: Oct 2008
Model: 8800
PIN: N/A
Carrier: AT
Posts: 81
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default drawing Text at the Center

Please Login to Remove!

Hi,

I have to display the number of button fields dynamically on the screen.
I have been drawing the button with the following code but my text doesn't fit on the buttons.

public class BigButtonField extends Field {

private int backgroundColour = 0xFFFFFF;
private Bitmap button;
private Bitmap on = Bitmap.getBitmapResource("onbutton.png");
private Bitmap off = Bitmap.getBitmapResource("offbutton.png");
private int fieldWidth = Graphics.getScreenWidth()-214;
private int fieldHeight = 34;
private int buffer = (Graphics.getScreenWidth() - 105) / 2;
private String text;
private Font fieldFont;
private Vector blackBerryContacts;
public int _contacts;;
private int _size;
private boolean status;

public BigButtonField(String _text) {
super(Field.FOCUSABLE);
text = _text;
button = off;

fieldFont = FieldFont();

}

protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}

protected void onFocus(int direction) {
button = on;
status =true;
invalidate();
}

protected void onUnfocus() {
button = off;
status =false;
invalidate();

}

public int getPreferredWidth() {
return fieldWidth;
}

public int getPreferredHeight() {
return fieldHeight;
}

protected void layout(int arg0, int arg1) {
setExtent(getPreferredWidth(), getPreferredHeight());
}

public static Font FieldFont() {
try {
FontFamily theFam = FontFamily.forName("SYSTEM");
return theFam.getFont(net.rim.device.api.ui.Font.BOLD, 14);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return null;
}

protected void drawFocus(Graphics graphics, boolean on) {
//
}

protected void fieldChangeNotify(int context) {
try {
this.getChangeListener().fieldChanged(this, context);
//FlowFieldManager fm =new FlowFieldManager();


} catch (Exception exception) {
}
}




protected void paint(Graphics graphics) {

// Dialog.inform("total contacts ="+_contacts);
graphics.fillRect(0, 0,fieldWidth-120, fieldHeight);
//for(start=0;start<_contacts;start++)
//{
graphics.setBackgroundColor(0xfafafa);
graphics.drawBitmap(2, 0,fieldWidth, fieldHeight,button, 0, 0);
if(status==true)
graphics.setColor(0x000000);
if(status ==false)
graphics.setColor(0xffffff);
graphics.setFont(fieldFont);

//((fieldWidth - fieldFont.getAdvance(text))/2)-105

//if(text.length()<=3)
//graphics.drawText(text,buffer-80,(fieldHeight-fieldFont.getHeight())/2);
if(text.length()<=7)
graphics.drawText(text,buffer-75,(fieldHeight-fieldFont.getHeight())/2);
//if(text.length()==5)
//graphics.drawText(text,buffer-75,(fieldHeight-fieldFont.getHeight())/2);
if(text.length()>7)
graphics.drawText(text,buffer-90,(fieldHeight-fieldFont.getHeight())/2);

}
}
Offline  
Old 10-25-2008, 04:29 AM   #2 (permalink)
Thumbs Must Hurt
 
Join Date: Oct 2008
Model: 8800
PIN: N/A
Carrier: AT
Posts: 81
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Any idea?
Offline  
Old 10-26-2008, 08:01 PM   #3 (permalink)
Thumbs Must Hurt
 
Join Date: Apr 2008
Model: 8130
PIN: N/A
Carrier: US Cellular
Posts: 82
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

First, it's really weird for you to name the variable that is your horizontal coordinate "buffer".

Why don't you have drawText center it horizontally for you?
Code:
graphics.drawText(text, 0, (fieldHeight-fieldFont.getHeight())/2, DrawStyle.HCENTER|DrawStyle.HALIGN_MASK, getWidth());
Offline  
Closed Thread


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

DELL 725-10284 / 331-2839 / W5RPF Lamp manufactured by DELL
$201.64
DELL 725-10284 / 331-2839 / W5RPF Lamp manufactured by DELL pictureLOT OF 3 OEM Dell printer TONERS FOR 3110CN/3115CN CT350448 CT350449 CT350450
$269.99
LOT OF 3 OEM Dell printer TONERS FOR 3110CN/3115CN CT350448 CT350449 CT350450 pictureOEM Dell Imaging Drum Kit 1320Cn 2130Cn 2135Cn 2150Cn 2150Cdn 2155Cn NEW SEALED
$99.99
OEM Dell Imaging Drum Kit 1320Cn 2130Cn 2135Cn 2150Cn 2150Cdn 2155Cn NEW SEALED picture ****** NEW OEM Genuine Dell PowerConnect 2608 8 port ethernet switch **********
$16.99
 ****** NEW OEM Genuine Dell PowerConnect 2608 8 port ethernet switch ********** pictureDELL 725-10263 / 331-1310 / KT74N Lamp manufactured by DELL
$217.54
DELL 725-10263 / 331-1310 / KT74N Lamp manufactured by DELL picture






Copyright 2004-2016 BlackBerryForums.com.
The names RIM and BlackBerry are registered Trademarks of BlackBerry Inc.