Estoy tratando de agregar ImageView programáticamente dentro de LinearLayout, que tiene orientación vertical. Mi archivo de diseño se describe como el XML siguiente:Cómo agregar programáticamente ImageView en LinearLayout sin espacios adicionales?
<?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 añade los ImageViews a la LinearLayout es la siguiente:
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 pasa es que antes y después de cada ImageView I Estoy consiguiendo 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 obtuve el resultado esperado fue no utilizar el imageLoader y, en su lugar, establecí el ImageResource programáticamente en un archivo de imagen estática. De esta forma no obtuve ningún espacio extra.
El resultado extraño se ilustra en la siguiente imagen:
¿Hay una manera de no agregar este espacio extra?
Debe almacenar en caché el LinearLayout fuera de For Loop para aumentar el rendimiento. – Subby