Как нарисовать фоновое изображение и сделать его похожим на всех устройствах Android? - PullRequest
0 голосов
/ 20 декабря 2011

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

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

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

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

    • вырезать из основного изображения нужное мне изображение и нарисовать только этот фрагмент (то, что я сейчас использую)
    • изменить размер изображения и нарисовать сэто меняет
    • что-то еще ...

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

1 Ответ

1 голос
/ 20 декабря 2011

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

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

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

...