Кнопки по центру на растровом фоне

Я хочу создать кнопки по центру по горизонтали на фоне, созданном из растрового изображения. Прямо сейчас у меня есть вертикальный полевой менеджер с фоном:

vertical=new VerticalFieldManager()
    {
        protected void paint(Graphics g) 
        {
            g.drawBitmap(0, 0, Display.getWidth(), Display.getWidth(), scaleBit, 0, 0);
            super.paint(g);
        }
        protected void sublayout(int maxWidth, int maxHeight) 
        {   
            super.sublayout(Display.getWidth(), Display.getWidth());
            setExtent(Display.getWidth(), Display.getWidth());
        }
    };      

но когда я добавляю такие параметры, как FIELD_HCENTER | Field.USE_ALL_WIDTH, в конструктор диспетчера вертикальных полей, ничего не происходит, когда я добавляю кнопки, так как же это сделать?


person falsetto    schedule 29.09.2015    source источник


Ответы (1)


Если это на MainScreen, вам не нужно добавлять VerticalFieldManager, так как экран все равно будет иметь его в качестве корня. Я собираюсь ответить так, как будто менеджер должен быть отдельным, как у вас есть, но это должно работать в любом случае.

Вам не нужно переопределять методы paint и sublayout вашего VerticalFieldManager. Вы должны быть в состоянии получить то, что вы хотите, с помощью стандартных методов.

public class MyScreen extends MainScreen
{
    public MyScreen()
    {
         super(NO_HORIZONTAL_SCROLL);
         VerticalFieldManager manager = new VerticalFieldManager(USE_ALL_WIDTH | NO_VERTICAL_SCROLL | NO_HORIZONTAL_SCROLL);
         manager.setBackground(BackgroundFactory.createBitmapBackground(null)); // Your bitmap here instead of null

         add(manager);

         ButtonField button = new ButtonField("Button", FIELD_HCENTER);
         manager.add(button);
    }
}

Я думаю, что большая проблема, с которой вы можете столкнуться, - это прокручиваемый родитель, из-за которого ваш менеджер или кнопка помещаются в центр и чрезвычайно большая область прокрутки.

person Kevin    schedule 02.10.2015