Cómo agregar mediante programación ImageView en LinearLayout sin espacios adicionales?
Estoy intentando agregar ImageView programatically dentro de un LinearLayout, que tiene orientación vertical. Mi archivo de diseño se describe como el xml siguiente:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="5dip" android:id="@+id/mainView""> <TextView android:id="@+id/tvTituloInformacao" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="20sp" android:textStyle="bold" android:textColor="@color/white" android:gravity="center_horizontal" android:shadowColor="@color/black_translucent" android:shadowDx="2.0" android:shadowDy="2.0" android:shadowRadius="3.0" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" /> <LinearLayout android:id="@+id/resourceContainer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5dip" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:layout_marginBottom="10dip" android:padding="3dip" android:orientation="vertical" android:gravity="center_horizontal" android:layout_below="@+id/tvTituloInformacao" android:background="@color/black_translucent2" /> </RelativeLayout>
Y mi código fuente de java que agrega el ImageViews al LinearLayout es como sigue:
- Agregar un elemento CheckBox a ListView impide que pueda recibir ItemClick
- Establecer un margen entre dos botones de forma programática desde una imagen lineal
- Android: vista de desplazamiento horizontal con tres diseños lineales
- Linear Layout Android - ¿Cómo mantener el elemento en la parte inferior de la vista?
- Scrollview puede alojar sólo un hijo directo
for(Resource r : mUser.getPictures()) { ImageView img = new ImageView(this); img.setVisibility(View.VISIBLE); img.setTag(r.getThumb60()); imageLoader.DisplayImage(r.getThumb60(), this, img); ((LinearLayout) tempFotosView.findViewById(R.id.resourceContainer)).addView(img); }
Lo que sucede es que antes y después de cada ImageView recibo algunos espacios adicionales que no deberían estar allí, por lo que la altura del contenedor de imágenes aumenta mucho. Una prueba que hice y conseguí el resultado esperado no era usar el imageLoader y en lugar de otro fijé el ImageResource programatically a un archivo de imagen estático. De esta manera no conseguí ningún espacio extra.
El resultado extraño se ilustra en la siguiente imagen:
¿Hay alguna manera de no agregar este espacio extra?
- Cómo inflar correctamente un diseño con un ViewFlipper anidado?
- Animación de la altura del contenedor LinearLayout con ValueAnimator
- Android escalonado / multilínea Linear Layout?
- Botones imágenes de fondo estiradas (wrap_content o uso de dp)
- LinearLayout de Android para Swing
- Alineación de fragmentos con RelativeLayout
- Cambiar el margen superior de la disposición lineal por programación android
- ¿Cómo puedo mostrar elipses en mi TextView si es mayor que la línea 1?
Creo que las imágenes que está cargando en las vistas de imagen pueden tener un cierto espacio adicional en la parte superior e inferior, y otra suposición de que está cargando imágenes en la vista de la imagen, con diferente resolución que el tamaño de la pantalla, y la configuración scaleType de ImageView a centerInside, si es la Caso por favor intente usar siguiente fijando la altura de la opinión de la imagen también, y ajuste el scaleType a fijXY.
Esto sucede cuando la imagen es más ancha que el tamaño de la pantalla después de que se haya construido ImageView. Android reduce las dimensiones de la imagen según la relación de aspecto, pero no elimina el espacio asignado que lo rodea anteriormente.
Para obtener una solución más limpia, pruebe este código después de su imageLoader.
((LinearLayout)findViewById(R.id.resource)).add(img);
- ¿Cómo notificar al usuario cuando entra en alguna región usando Geoloqi API?
- ¿Por qué android.osBundle una clase final?