Comment ajouter par programme ImageView dans LinearLayout sans espaces supplémentaires?

Je suis en train d'ajouter ImageView par programmation à l'intérieur d'un LinearLayout, qui a une orientation verticale. Mon fichier de configuration est décrit comme le xml ci-dessous:

<?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>

Et mon code source java qui ajoute de la ImageViews à la LinearLayout est comme suit:

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);
}

Ce qui se passe est que, avant et après chaque ImageView j'obtiens des espaces supplémentaires qui ne devraient pas y être, de sorte que la hauteur des images récipient augmente de beaucoup. Un test que j'ai fait et j'ai obtenu le résultat attendu était de ne pas utiliser le imageLoader et à la place j'ai mis le ImageResource par programmation d'une image statique de fichier. De cette façon, je n'ai pas obtenir de l'espace supplémentaire.

L'étrange résultat est illustré dans l'image ci-dessous:

Comment ajouter par programme ImageView dans LinearLayout sans espaces supplémentaires?

Est-il un moyen de ne pas ajouter de cet espace supplémentaire?

Vous devriez cache le LinearLayout en dehors de la Boucle for Pour augmenter les performances.

OriginalL'auteur Thiago | 2011-12-29