Установить размер кнопки размером с кончик пальца в libgdx

В моей игре libgdx мне нужно отобразить строку с 8 до 14 круглыми кнопками.

Я ищу лучший способ убедиться, что все кнопки по крайней мере размером с кончик пальца (от 0,8 до 1 мм), но не намного больше, потому что я хочу, чтобы они вписывались в экран без прокрутки, если это возможно.

Я нашел несколько возможных решений, но я действительно не знаю, какой из них лучший, или если я упускаю что-то лучшее:

  • Используйте ExtendViewport с виртуальным размером 480×360, например, и найдите подходящий размер для кнопок. Это проще всего реализовать, но результат зависит от плотности экрана, размера и соотношения сторон.

  • Используйте StretchViewport, фиксируйте только ширину кнопок и вычисляйте их высоту во время выполнения, используя соотношение сторон устройства, чтобы сохранить их круглыми. Это также зависит от плотности и размера экрана, но не от соотношения сторон.

  • Используйте плотность устройства и физический размер для вычисления во время выполнения размера кнопок. Это кажется лучшим подходом, чтобы получить кнопки нужного размера, но гораздо сложнее и низкоуровневые, поэтому я нахожу странным, что нет более простых способов сделать это.

Итак, как вы думаете, какой путь выбрать?

1 ответ

  1. Joanq, используйте ваше (слегка измененное) предложение 2, чтобы покрыть большинство типов экранов: используйте StretchViewport, фиксируйте только ширину кнопок ( в процентах от Gdx.графика.getWidth ()), и вычислить их высоту во время выполнения, используя соотношение сторон устройства, чтобы держать их круглыми.