добавить пробел между двумя изображениями в контейнере в коденамоне - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь добавить 6 изображений в контейнер, но разрыв между двумя изображениями велик, как показано на рис. Ниже. Я попробовал этот код.

class TestPallet extends Container {

    TestIcon firstIcon;
    TestIcon secondIcn;
    TestIcon thirdIcn;
    TestIcon fourIcn;


    Container panel;

    public TestPallet() {
        super();
        panel= new Container();
        panel.getStyle().setBgColor(0x323232);
        panel.getStyle().setBgTransparency(255);
        panel.setLayout(new BoxLayout(BoxLayout.X_AXIS));
        panel.getStyle().setBorder(Border.createLineBorder(2, 0xffffff));
        panel.getStyle().setPadding(10, 10,10,10);
        panel.getStyle().setMargin(50, 10, 10, 10);
        panel.setSelectedStyle(panel.getStyle());

        Container row1 = new Container();
        row1.setLayout(new BoxLayout(BoxLayout.X_AXIS));

        int margin = Display.getInstance().convertToPixels(1, true);


        firstIcon = new ShapeIcon(1, this);
        panel.addComponent(firstIcon);

        secondIcn = new ShapeIcon(2, this);
        panel.addComponent(secondIcn);


        thirdIcn = new ShapeIcon(3, this);
        panel.addComponent(thirdIcn);

        fourIcn = new ShapeIcon(4, this);
        panel.addComponent(fourIcn);

        addComponent(panel);

    }
}
class TestIcon extends Container{

    boolean selected=false;
    ShapePallet pallet;
    int t;

    public TestIcon(int s, ShapePallet sp) {
        super();
        pallet=sp;
        t=s;
        getStyle().setBgTransparency(0);
        getStyle().setBgColor(0xdcdcdc);
        this.setSelectedStyle(this.getStyle());
        setFocusable(true);

    }

    @Override
    public void paint(Graphics g) {

        int size = Display.getInstance().convertToPixels(2, false);

        Image im= null;

        if(t==1) {
            size *= 2;
            im = DisplayManager.getWmUiBuilder().getResources().getImage("image1.png").scaled(size, size);

        }

        else if(t== 2) {
            size *= 2;
            im = DisplayManager.getWmUiBuilder().getResources().getImage("image2.png").scaled(size, size );

        }

        else if(t== 3) {
            size *= 2;
            im = DisplayManager.getWmUiBuilder().getResources().getImage("image3.png").scaled(size, size);

        }

        else if(t== 4) {
            size *= 2;
            im = DisplayManager.getWmUiBuilder().getResources().getImage("image4.png").scaled(size, size);

        }

    g.drawImage(im,getX() + ((getWidth() - im.getWidth())) / 2, getY() + ((getHeight() - im.getHeight()) / 2));

    }

}

enter image description here

Как видно из изображения, пространство между двумя изображениями слишком велико, и это с iPad, на Iphone я вижу только два изображения. В этом случае также, одно изображение отсутствует. Итак, как уменьшить разрыв между двумя изображениями? Любые ответы на это будут полезны. Спасибо

1 Ответ

0 голосов
/ 11 января 2019

Я бы предложил использовать стили.

Вам также необходимо установить отступы / отступы, в идеале используйте миллиметры и установите числа на более низкие значения. Например. setPaddingUnit / setMarginUnit до Style.UNIT_TYPE_PIXELS или Style.UNIT_TYPE_DIPS.

Лучшим подходом было бы использование gridlayout, который будет равномерно распределять компоненты внутри него.

...