Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как нарисовать фоновое изображение и сделать его похожим на все устройства Android?

Автор вопроса: BelurdОтветов: 1

Прошу совета по следующей проблеме. Я разрабатываю небольшую игру, и у меня есть файл *.png для фона. Мне нужно поставить его на фон основного экрана игры. Более того, он должен быть в 2 раза больше по ширине и в 1,5 раза по высоте от размеров экрана, потому что мои объекты "перелетают" через эти границы. Кроме того, экран перемещается по этому фону в игровом процессе. Но я немного застрял в том, как это сделать.

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

  1. Сделайте разные фоновые изображения и поместите их в специальные папки. Звучит хорошо, но с количеством разрешений Android-устройств на рынке это звучит не очень хорошо. Это просто увеличит размер *.apk. И если я буду использовать методы для установки фона, это растянет изображение - я думаю, это не очень хорошая идея.

  2. В методе onDraw() нарисуйте изображение на холсте. Я должен поместить его верхний левый угол в самый верхний левый угол возможной игровой области и нарисовать его. Но вот несколько вариантов:

    • cut from the main image the image i want and draw only this piece (what I use now)
    • изменить размер изображения, которое у меня есть, и рисовать с этими изменениями
    • что-то другое...

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

androidbackgroundondraw

Ответы

Ответ 1 · рейтинг 1 · Sujit

вы должны использовать 9 исправлений изображения.

Графика NinePatchDrawable - это растягиваемое растровое изображение, размер которого Android автоматически изменит в соответствии с содержимым представления, в которое вы поместили его в качестве фона.

см. эту ссылку. http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы