标签标题未在标签背景中心设置

时间:2013-01-28 09:11:40

标签: blackberry

我正在研究一个逻辑,我必须将标签标题对齐在垂直中心,但它不起作用。

我试图设置文本填充,但整个背景标签正在转移。有什么方法可以解决这个问题。

这是我的代码:

final Bitmap tabBackGroundImage1 = Bitmap.getBitmapResource("box_img.png");
homeContentManager.setBorder( BorderFactory.createBitmapBorder(
    new XYEdges(16,16,16,16), tabBackGroundImage));
//homeContentManager.setBorder(roundedBourder);

//HOME SCREEN HORIZONTAL MANAGER
buddiesLabel=new LabelField("Buddies");

_bitmap = EncodedImage.getEncodedImageResource("buddies.png");
final BitmapField buddiesBmp = new BitmapField(Constant.sizePic(_bitmap, 
                                      _bitmap.getHeight(), _bitmap.getWidth()));
buddiesBmp.setMargin(3,5,0,5);

if(BuddyListField.onlineBuddyCount < 1000) {
    buddyCount=new LabelField(" "+BuddyListField.onlineBuddyCount+" "){
        /*public void setText(String text,int offset,int length){
            text = String.valueOf(BuddyListField.onlineBuddyCount);
            offset = 200;
            length = 5;
            super.setText(text, offset, length);
        }*/
        public int getPreferredHeight() {
            return tabBackGroundImage1.getHeight();
        }
        public int getPreferredWidth() {
            return  tabBackGroundImage1.getWidth();
        }

        protected void layout(int width, int height) {
            super.layout(width, height);
            setExtent(Math.min(width, tabBackGroundImage1.getWidth()), Math.min(height, tabBackGroundImage1.getHeight()));
        }
        protected void paint(Graphics graphics) {
            int deviceWidth=net.rim.device.api.system.Display.getWidth();
            int deviceHeight=net.rim.device.api.system.Display.getHeight();

            graphics.clear();
            graphics.drawBitmap(0, 0, deviceWidth,
            deviceHeight, tabBackGroundImage1, 0, 0);
            super.paint(graphics);
        }
    };

这是输出:

enter image description here

但我需要在背景中将零设置为垂直居中。

1 个答案:

答案 0 :(得分:0)

试试这个

protected void paint(Graphics graphics) {
            int deviceWidth=net.rim.device.api.system.Display.getWidth();
            int deviceHeight=net.rim.device.api.system.Display.getHeight();

            graphics.clear();
            graphics.drawBitmap(0, 0, deviceWidth,
            deviceHeight, tabBackGroundImage1, 0, 0);

            graphics.drawText((getPreferredWidth()-getText())/2,(getPreferredHeight()-graphics.getFont().getHeight())/2,getText);

//            super.paint(graphics);
        }