Фоновое изображение Android больше контейнера - PullRequest
2 голосов
/ 03 января 2012

Мы начинаем разрабатывать приложения для Android, разработанные для iOS, и испытываем затруднения при работе с фоновыми изображениями.

У нас есть фоновое изображение 1024 x 1200, которое мы хотим отцентрировать по горизонтали и выровнять сверху.Мы не хотим, чтобы изображение масштабировалось, но хотим, чтобы изображение переполнялось / обрезалось, чтобы оно правильно отображалось на виде.Нечто подобное вы бы достигли с помощью CSS background-position: top center;

Мы пробовали несколько подходов, но всегда получаем масштабированное изображение.Комбинации setScaleType (), setAdjustViewBounds (), установки гравитации с помощью LayoutParams и различных других вещей не имели успеха.Теперь мы немного застряли на том, что делать дальше.

Идея состоит в том, что мы можем использовать одно изображение для экрана нескольких размеров без изменения размера изображения (у нас будет 2 или 3 из этих изображений для экранадиапазон размеров / плотности).Это делается для того, чтобы уменьшить количество таких изображений, которые нам нужны, чтобы охватить все возможности экрана Android.

Крейг

1 Ответ

1 голос
/ 25 мая 2012

создать список слоев:

http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList

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

У него будет цветной фон, в случае, если по какой-то причине изображение не заполняет весь экран, и изображение не будет масштабироваться и будет следовать желаемому атрибуту гравитации..

...