¿Por qué hay pixeles adicionales alrededor de mi Android GridView?

Tengo un GridView en mi aplicación de Android que tiene un número de ImageViews en él. El espacio en mi pantalla es limitado y quiero que las imágenes ocupen el mayor espacio posible. Desafortunadamente, el GridView siempre deja 5 píxeles de espacio de pantalla vacía alrededor del borde exterior de ImageViews (el espacio entre ImageViews se establece con espaciamiento horizontal / vertical y se comporta correctamente). El espacio vacío actúa como un margen alrededor de ImageViews, pero no puedo deshacerme de él. ¿Alguien sabe lo que está causando esta "frontera" y cómo puedo deshacerme de él (o al menos hacerlo más pequeño)? Gracias.

Actualización: Estoy creando ImageViews inflando un archivo .xml en el método getView () de mi clase de adaptador. Aquí está el xml que estoy inflando:

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

He definido el GridView en mi archivo xml de diseño como este:

 <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"/> 

Aquí hay una captura de pantalla del problema. El área roja en mi GridView. Las áreas púrpuras son mis imágenes. La imagen que se muestra es un simple rectángulo azul con un centro transparente. La imagen es de 45×45 píxeles (pero es sólo 30×30 píxeles en mi aplicación – voy a preocuparme por eso más tarde). El borde rojo alrededor de la púrpura es lo que estoy tratando de eliminar.

texto alternativo

Gracias por el consejo de todos, pero resulta que la respuesta estaba en algún lugar que no esperábamos. Los píxeles adicionales fueron causados ​​por el selector asignado a mi GridView. Supongo que el selector predeterminado es una imagen de 9 parches que tiene un borde de 5 píxeles alrededor. Cuando creé y asigné un 9-parche que tenía bordes más pequeños (o sin fronteras en absoluto – sólo un archivo .png normal) el espacio extra en mi GridView desapareció.

¿Intentaste establecer el padding en el ImageView y el horizontalSpacing y verticalSpacing en el GridView a 0?

Trate de establecer el layout_height y layout_width de la vista de imagen en fill_parent.

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

Lo haré dinámicamente, creo.

Para mí nada ayudó excepto fijar el android:columnWidth atributo en el xml (por ejemplo android:columnWidth="50dp" )

  • Gallery setSelection no activa el selector de imágenes
  • Android convertir cadena codificada en base64 en vista de imagen
  • La imagen de Android muestra una imagen verdosa
  • Hacer diferencias entre setOnClickListener y setOnTouchListener
  • Fuera de error de memoria viewpager + imageView
  • Obtener la posición de imageview en el diseño android
  • Android-TextView setText en Html.fromHtml para mostrar la imagen y el texto
  • Dibujar un rectángulo detrás de ImageView personalizado que no anima
  • Decodificador Skia no puede descodificar el flujo remoto
  • Picasso "Cambiar tamaño y centerCrop" o ImageView "centerCrop"?
  • Obtener la parte no visualizada de slider / linearlayout para no cambiar el tamaño
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.