Почему вокруг моего 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?