Blackberry BitmapButtonField выравнивание по центру + подгонка к окну - PullRequest
0 голосов
/ 31 декабря 2011

Я использую следующий код для добавления изображений к кнопкам. Тем не менее, я получил некоторые кнопки из окна просмотра! Что мне добавить, чтобы они поместились в окне просмотра?!

ПЛЮС: Я хочу, чтобы они были в центре, вертикально и горизонтально. Допустим, у меня 15 кнопок, я хочу 3 каждой строки. А в центре экрана ??

Заранее спасибо

public class BitmapButtonField extends ButtonField {
    private Bitmap bitmap;
    private Bitmap bitmapHighlight;
    private boolean highlighted = false;

    public BitmapButtonField(Bitmap bitmap, Bitmap bitmapHighlight) {
        this(bitmap, bitmapHighlight, ButtonField.CONSUME_CLICK|ButtonField.FIELD_HCENTER|ButtonField.FIELD_VCENTER);
    }

    public BitmapButtonField(Bitmap bitmap, Bitmap bitmapHighlight, long style) {
        super(style);
        this.bitmap = bitmap;
        this.bitmapHighlight = bitmapHighlight;
    }

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

    public int getPreferredWidth() {
            return bitmap.getWidth();
    }

    public int getPreferredHeight() {
            return bitmap.getHeight();
    }

    protected void paint(Graphics graphics) {
            super.paint(graphics);
            int width = bitmap.getWidth();
            int height = bitmap.getHeight();
            Bitmap b = bitmap;
            if (highlighted)
                b = bitmapHighlight;
            graphics.drawBitmap(0, 0, width, height, b, 0, 0);
    }
}

1 Ответ

0 голосов
/ 01 января 2012

Нет ничего плохого в вашем поле.Скорее всего, вы используете HorizontalFieldManager, который имеет бесконечную ширину и размещает поля за пределами экрана.Вы можете использовать FlowFieldManager, чтобы изменить это поведение.

...