Почему вокруг моего Android GridView есть лишние пиксели?

У меня есть приложение GridView в моем Android-приложении, в котором есть несколько ImageViews. Место на моем экране ограничено, и я хочу, чтобы изображения занимали как можно больше доступного пространства. К сожалению, GridView всегда оставляет 5 пикселей пустого экранного пространства вокруг внешнего края ImageViews (пространство между ImageViews установлено с горизонтальным / вертикальным интервалом и ведет себя правильно). Пустое пространство действует как поле вокруг ImageViews, но я не могу от него избавиться. Кто-нибудь знает, что вызывает эту "границу" и как я могу от нее избавиться (или хотя бы сделать ее меньше)? Благодарю.

Обновление: я создаю ImageViews, надувая XML-файл в методе getView() моего класса Adapter. Вот xml, который я раздуваю:

<ImageView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:background="#FF00FF" />

Я определил GridView в моем XML-файле макета следующим образом:

<GridView
   android:id="@+id/mygrid"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_above="@+id/abutton"
   android:layout_marginBottom="8dp"
   android:numColumns="5" android:background="#FF0000"/>

Вот скриншот проблемы. Красная область в моем GridView. Фиолетовые области - мои изображения. Отображаемое изображение представляет собой простой синий прямоугольник с прозрачным центром. Размер изображения составляет 45x45 пикселей (но в моем приложении он составляет всего 30x30 пикселей - об этом я буду беспокоиться позже). Красная граница вокруг пурпура - это то, что я пытаюсь устранить.

альтернативный текст

4 ответа

Решение

Спасибо всем за советы, но оказывается, что ответ был где-то, чего мы не ожидали. Дополнительные пиксели были вызваны селектором, который был назначен моему GridView. Я полагаю, что селектор по умолчанию - это 9-патчовое изображение с 5-пиксельной рамкой вокруг него. Когда я создал и назначил 9-патч, который имел меньшие границы (или вообще не имел границ - просто обычный файл.png), дополнительное пространство в моем GridView исчезло.

Попробуйте установить layout_height и layout_width вида изображения в fill_parent.

iv.setLayoutParams(ViewGroup.LayoutParams(ViewGroup.MATCH_PARENT, ViewGroup.MATCH_PARENT));

я буду делать это динамически, я верю.

Для меня ничего не помогло, кроме установки android:columnWidth атрибут в XML (например, android:columnWidth="50dp")

Вы пытались установить padding на ImageView и horizontalSpacing а также verticalSpacing на GridView до 0?

Другие вопросы по тегам