1 голос
 
197 просмотров
16.05.2020 / 17:50  danfedotov45

Адаптивный размер спрайтов

Я делаю адаптацию моего 2д приложения под разные экраны устройств(в моем случае - Android). С расположением спрайтов и текста - здесь понятно. На основании ширины/высоты экрана проделываем мат. операции и получаем нужное расположение. Но как быть с размером? Мне нужен код(java :) ) простого расчета ширины/высоты для спрайта, чтобы также и размер был адаптивным.
16.05.2020 / 17:55  vl@volk
Так же как и с расположением, вводишь коэффициент размера экрана и по этому коэффициенту масштабируешь спрайты. Но ресайзить исходные спрайты находу затея не из лучших. Лучще заранее приготовить наборы спрайтов под разные экраны
16.05.2020 / 21:17  danfedotov45
@vl@volk, ставлю 'Лучший ответ')
Только сколько же этих вариантов разрешений экрана то на андроид??
16.05.2020 / 21:26  danfedotov45
Мне казалось, что так делали только для j2me. Лучше б подготовить 720p картинки, сайзить, и нормик. А сколько же это памяти займет? 'спрайты' (достаточно много) * 'несколько вариантов разрешений'... Хм ...
17.05.2020 / 02:05  vl@volk
а ты посмотри сколько доступно вариаций размеров экранов. У андроид устройств есть как по мне строгий список, как писал уже DominaN, hdpi, mdpi, xhdpi. Полный список думаю есть на сайте, где размещена актуальная документация по андроид
Ответы
 
3 голоса
 
# 16.05.2020 / 21:49  DominaN
В андроиде есть система зависимости размера отображаемых ресурсов по dpi:
mdpi: без скалинга (стандартный размер)
xhdpi: скалинг x2
hdpi: скалинг x1.5
ldpi: скалинг x0.75

Соответственно лучше сделать изначально в xhdpi а затем даунсайзить до остальных разрешений. Еще зависит от того, что используется для отрисовки. В целом логично спрайты паковать в атласы по разрешению.
16.05.2020 / 23:17  danfedotov45
Ну знаешь, я использую для этой цели assets, а не ложу изображения в папку drawable. + Для отрисовки используется отрисовщик текстур
17.05.2020 / 07:52  DominaN
А причём тут drawable? Это общие рекомендации по разрешению в зависимости от dpi устройства. Какой отрисовщик используется? Используется ли отрисовка при помощи Open GL?
17.05.2020 / 09:14  danfedotov45
OpenGL 2.0 используется
 
1 голос
 
# 17.05.2020 / 02:08  vl@volk
Альтернативный вариант решения для экономии занимаего места приложением - это использовать 3D модели и потом при первом запуске устройства, основываясь на размере дисплея (разрешение+диагональ), выполнить рендеринг в нужных позициях. Несколько трудоемко, но например в SpriteKit даная функциональность имеется.
Всего: 2

Реклама

Мы в соцсетях

vk tw tg yt