Я делаю адаптацию моего 2д приложения под разные экраны устройств(в моем случае - Android). С расположением спрайтов и текста - здесь понятно. На основании ширины/высоты экрана проделываем мат. операции и получаем нужное расположение. Но как быть с размером? Мне нужен код(java ) простого расчета ширины/высоты для спрайта, чтобы также и размер был адаптивным.
Так же как и с расположением, вводишь коэффициент размера экрана и по этому коэффициенту масштабируешь спрайты. Но ресайзить исходные спрайты находу затея не из лучших. Лучще заранее приготовить наборы спрайтов под разные экраны
Мне казалось, что так делали только для j2me. Лучше б подготовить 720p картинки, сайзить, и нормик. А сколько же это памяти займет? 'спрайты' (достаточно много) * 'несколько вариантов разрешений'... Хм ...
а ты посмотри сколько доступно вариаций размеров экранов. У андроид устройств есть как по мне строгий список, как писал уже DominaN, hdpi, mdpi, xhdpi. Полный список думаю есть на сайте, где размещена актуальная документация по андроид
В андроиде есть система зависимости размера отображаемых ресурсов по dpi: mdpi: без скалинга (стандартный размер) xhdpi: скалинг x2 hdpi: скалинг x1.5 ldpi: скалинг x0.75
Соответственно лучше сделать изначально в xhdpi а затем даунсайзить до остальных разрешений. Еще зависит от того, что используется для отрисовки. В целом логично спрайты паковать в атласы по разрешению.
А причём тут drawable? Это общие рекомендации по разрешению в зависимости от dpi устройства. Какой отрисовщик используется? Используется ли отрисовка при помощи Open GL?
Альтернативный вариант решения для экономии занимаего места приложением - это использовать 3D модели и потом при первом запуске устройства, основываясь на размере дисплея (разрешение+диагональ), выполнить рендеринг в нужных позициях. Несколько трудоемко, но например в SpriteKit даная функциональность имеется.
Только сколько же этих вариантов разрешений экрана то на андроид??