0

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

我试图设置文本填充,但带有背景的整个标签正在移动。有没有办法解决这个问题。

这是我的代码:

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

这是输出:

在此处输入图像描述

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

4

1 回答 1

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);
        }
于 2013-02-01T16:41:09.490 回答