2014-06-16 3 views
0

J'ai un ListView qui contient 4 ImageView mais après avoir réglé l'Adaptateur avec $ ImageView je reçois seulement le premier ImageView.ListView montre SEULEMENT un ImageView par article

ListView Adaptateur:

public View getView(int position, View convertView, ViewGroup parent) { 
    View vi = convertView; 
    if (convertView == null) { 
     vi = inflater.inflate(R.layout.onlyimageproductlist, null); 
     options = new BitmapFactory.Options(); 
     options.inSampleSize = 3; 
    } 

    ImageView thumb_image1 = (ImageView) vi 
      .findViewById(R.id.imageview_only_thumbnail_1); // thumb image 
    ImageView thumb_image2 = (ImageView) vi 
      .findViewById(R.id.imageview_only_thumbnail_2); // thumb image 
    ImageView thumb_image3 = (ImageView) vi 
      .findViewById(R.id.imageview_only_thumbnail_3); // thumb image 
    ImageView thumb_image4 = (ImageView) vi 
      .findViewById(R.id.imageview_only_thumbnail_4); // thumb image 
    //building the uris... 

    if (uris1 == null) { 
     thumb_image1.setImageResource(R.drawable.noimage); 
    } else { 
     String[] path = uris1.split("file://"); 
     Bitmap map = BitmapFactory.decodeFile(path[1], options); 
     thumb_image1.setImageBitmap(map); 
    } 

      //same process for image 2,3,4 

     return vi; 
} 

Ma mise en page:

<LinearLayout 
     android:id="@+id/ll_for_thumbnail" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="3dp" 
     android:orientation="horizontal" 
     android:layout_marginRight="2dp" > 

      <ImageView 
      android:id="@+id/imageview_only_thumbnail_1" 
      android:layout_width="120dp" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 

      <ImageView 
      android:id="@+id/imageview_only_thumbnail_2" 
      android:layout_width="120dp" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 


      <ImageView 
      android:id="@+id/imageview_only_thumbnail_3" 
      android:layout_width="120dp" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 

      <ImageView 
      android:id="@+id/imageview_only_thumbnail_4" 
      android:layout_width="120dp" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 

    </LinearLayout>   

J'ai vérifié les URIs et tous se réfèrent à une image. sinon je vais montrer l'image par défaut. mais je n'en obtiens aucun pour le premier pouce où j'obtiens une image OU une image par défaut.

+0

Quand vous dites // même processus pour l'image 2,3,4', avez-vous assuré que vous ne l'avez pas fait copier/coller erreur et définir de façon répétée 'thumb_image1.setImageBitmap (carte);' plusieurs fois , plutôt que 'thumb_image2.setImageBitmap (map);', 'thumb_image3.setImageBitmap (map);', etc – FunkTheMonk

+0

@FunkTheMonk J'ai vérifié deux fois la liaison entre la vue et la ressource et aussi pour setImage. Tout semble correct. Et AFAIK nous pouvons faire tout ce que nous voulons sur les articles de la ListView, non? – 113408

+0

seras-tu capable de publier l'adaptateur complet getView()? –

Répondre

0

Comme vous dites que vous faites bien dans la programmation, alors je vous suggère de vérifier votre fichier de disposition comme ci-dessous. Utilisez le paramètre weight pour que tous les ImageViews obtiennent le même rapport dans l'espace.

<LinearLayout 
     android:id="@+id/ll_for_thumbnail" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="3dp" 
     android:orientation="horizontal" 
     android:layout_marginRight="2dp" > 

      <ImageView 
      android:id="@+id/imageview_only_thumbnail_1" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 

      <ImageView 
      android:id="@+id/imageview_only_thumbnail_2" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 


      <ImageView 
      android:id="@+id/imageview_only_thumbnail_3" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 

      <ImageView 
      android:id="@+id/imageview_only_thumbnail_4" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="90dp" 
      android:padding="5dp" /> 

    </LinearLayout>   
+0

Je l'avais déjà fait, et cela n'a pas fonctionné> Mais pour une raison quelconque, maintenant cela fonctionne. Le truc c'est que je pouvais voir mon 4 ImageView (sur l'éditeur graphique) sans le poids, mais en runtime je n'ai que le premier. En tout cas merci pour votre réponse rapide. Maintenant, ça marche – 113408

+0

Ensuite, si c'est utile, s'il vous plaît accepter et upvote afin que d'autres personnes puissent en profiter –