#java #user-interface #button #libgdx
#java #пользовательский интерфейс #кнопка #libgdx
Вопрос:
Я пытаюсь получить равное пространство между моими кнопками по экрану для любого размера экрана (ширины). Я использую таблицы Libgdx внутри сцены. Я думаю, что моя логика на правильном пути, но она не возвращает ничего близкого к тому, что я хочу.. большинство кнопок не отображаются на экране. (Всего у меня 5 кнопок)
int width = Gdx.graphics.getWidth();
int spacing = width / 5;
System.out.println(width);
System.out.println(spacing);
//BOTTOM TABLE
tableBottom = new Table(skin);
stage.addActor(tableBottom);
tableBottom.setBounds(0,0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
tableBottom.setFillParent(true);
tableBottom.columnDefaults(1).width(spacing);
tableBottom.add(inventoryButton).size(144,160).center();
tableBottom.add(assignButton).size(148,180).center();
tableBottom.add(shopButton).size(130,152).center();
tableBottom.add(collectButton).size(182,198).center();
tableBottom.add(fightButton).size(162,178).center();
Как запрошенные изображения:
Это то, что делает приведенный выше код! и это не точно, оно отличается в зависимости от размера экрана.
Вот как я ХОЧУ, чтобы это выглядело. На экране любого размера равное расстояние и занимает всю нижнюю часть .. очевидно, что на большом экране они будут не так близко друг к другу, но это нормально! спасибо, что боролся с этим.
Комментарии:
1. Может быть, вы можете опубликовать фотографию того, что у вас есть, и того, что вы хотите?
2. @grimrader 22 Я ОТРЕДАКТИРОВАЛ сообщение, включив в него картинки, спасибо!
3. Ну, это то, что я могу уменьшить и заставить его выглядеть нормально… Но когда я захожу на планшет, например, это не то же расстояние, что и на телефоне Android… Мне нужно динамически изменять интервал в зависимости от ширины экрана. Это то, что, как я думал, я делал, беря ширину экрана и перемещая его по кнопкам и используя это с интервалом, но это выталкивает их за пределы экрана.
4. Что, если вы
.width(spacing)
полностью удалите? а.center()
s?5. .width(интервал) задает ширину ячейки таблицы по умолчанию, а center помещает ее в центр этого столбца ячеек. Моя логика заключается в том, чтобы взять ширину экрана и сделать 5 равных ячеек по ширине, а затем разместить кнопки в центре каждой из этих ячеек. Но он запускается на экране и не делает того, что я ожидаю.. Должен быть способ, которым люди это делают.
Ответ №1:
Чтобы получить равный интервал в горизонтальном направлении, измените
tableBottom.add(inventoryButton).size(144,160).center();
tableBottom.add(assignButton).size(148,180).center();
tableBottom.add(shopButton).size(130,152).center();
tableBottom.add(collectButton).size(182,198).center();
tableBottom.add(fightButton).size(162,178).center();
Для
tableBottom.add(inventoryButton).size(144,160).expandX();
tableBottom.add(assignButton).size(148,180).expandX();
tableBottom.add(shopButton).size(130,152).expandX();
tableBottom.add(collectButton).size(182,198).expandX();
tableBottom.add(fightButton).size(162,178).expandX();