Почему вокруг моего Android GridView есть лишние пиксели? - PullRequest
35 голосов
/ 27 октября 2010

В моем приложении для Android есть GridView, в котором есть несколько изображений. Место на моем экране ограничено, и я хочу, чтобы изображения занимали как можно больше доступного пространства. К сожалению, 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 пикселей - об этом я буду беспокоиться позже). Красная граница вокруг пурпура - это то, что я пытаюсь устранить.

alt text

Ответы [ 4 ]

67 голосов
/ 29 октября 2010

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

0 голосов
/ 17 декабря 2012

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

0 голосов
/ 28 октября 2010

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

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

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

0 голосов
/ 28 октября 2010

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

...