На Android, как мне отобразить фоновое изображение через элементы в окне, включая ListView?

1

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

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

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

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

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

Теги:
android-linearlayout
android-listview

3 ответа

1
Лучший ответ

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

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

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

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

1

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

Задайте свойство подсказки для кеша ListView на # 000000 (пустое).

Вы можете либо сделать это в xml с помощью android: cacheColorHint = "@color/blank".

Или в вашем коде с помощью ListView.setCacheColorHint(0)

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню