BlackBerry - ButtonField с центрированным растровым изображением

У меня есть класс, который расширяется от ButtonField:

class BitmapButtonField extends ButtonField
{
    private Bitmap _bitmap;
    private int _buttonWidth;
    private int _buttonHeight;

    BitmapButtonField(Bitmap bitmap, int buttonWidth, int buttonHeight, long style) 
    {    
        super(style);
        _buttonWidth = buttonWidth;
        _buttonHeight = buttonHeight;
        _bitmap = bitmap;
    }

    public int getPreferredHeight() 
    {
        return _buttonHeight;
    }

    public int getPreferredWidth() 
    {
        return _buttonWidth;
    }

    protected void layout(int width, int height) 
    {
        setExtent(Math.min( width, getPreferredWidth()), Math.min( height, getPreferredHeight()));
    }

    protected void paint(Graphics graphics) 
    {       
        // THIS IS NOT CENTERED
        int x = (getPreferredWidth() - _bitmap.getWidth()) >> 1;
        graphics.drawBitmap(x, 0, _bitmap.getWidth(), _bitmap.getHeight(), _bitmap, 0, 0);

        // THIS IS NOT LEFTMOST, TOPMOST
        graphics.drawBitmap(0, 0, _bitmap.getWidth(), _bitmap.getHeight(), _bitmap, 0, 0);
    }
} 

Если вы могли видеть из моих комментариев о методе рисования, очевидно, что позиция ButtonField 0,0 находится не совсем в самом левом и верхнем углу кнопки, так или иначе, она дополняется неизвестным смещением, поэтому это затрудняет центрирование изображения.

Но если я расширяюсь из класса Field, проблема исчезает, но мне нужно продолжать расширяться из ButtonField, так как мне нужны рамка ButtonField и стиль фокуса (сине-белый прямоугольник с закругленными углами), мне просто нужно отобразить центрированное изображение на ButtonField, и сохраняя все стандартные атрибуты ButtonField.

Есть ли способ устранить смещение в методе рисования на ButtonField? Я пробовал setPadding и setMargin, но не повезло. Большое спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос