На Android, как мне отобразить фоновое изображение через элементы в окне, включая ListView? - PullRequest
1 голос
/ 12 июля 2011

У меня есть проект Android 2.1 с ListView в LinearLayout. В LinearLayout задан фоновый рисунок:

Android: фон = "@ вытяжке / фон"

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

1) В эмуляторе фон заполняет экран, а на моем телефоне - нет. Когда приложение запускается, я вижу его крошечную часть вверху, и по мере добавления элементов в ListView появляется больше. Я вижу фон за каждым рядом; просто не там, где нет ссоры. Как мне заставить его заполнить экран даже на моем телефоне? Это Droid X, если это имеет значение.

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

Ответы [ 3 ]

1 голос
/ 13 июля 2011

Вы можете использовать FrameLayout и добавить ..

  1. ImageView с вашим фоном.Например, используйте android:scaleType="centerCrop", чтобы его масштабирование сохранял соотношение сторон (layout_width и layout_height оба установлены на fill_parent)
  2. Ваш ListView (layout_width и layout_height оба установлены на fill_parent)

Независимо от того, видите ли вы изображение позади представления списка или нет, оно также зависит от используемого элемента представления списка.

Также установите атрибут ListView android:cacheColorHint="#00000000" (прозрачный)

1 голос
/ 13 июля 2011

Во-первых, убедитесь, что вы не установили свойство background ListView и его элементов.

Установите свойство подсказки цвета кэша ListView на # 000000 (пусто).

Вы можете сделать это в xml, используя android: cacheColorHint = "@ color / blank".

Или в своем коде, используя ListView.setCacheColorHint(0)

0 голосов
/ 13 июля 2011

Для первого выпуска, я думаю, вы должны сделать свой просмотр списка, чтобы заполнить все доступное пространство на экране, чтобы он максимизировал свою высоту, например android: layout_height = "0dp" & android: layout_weight = "1"

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

...