2014-06-16 51 views
0

我有一個包含4個ImageView的ListView,但是在使用$ ImageView設置適配器後,我只獲取第一個ImageView。ListView每個項目只顯示一個ImageView

的ListView適配器:

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

我的佈局:

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

我檢查了URI和所有的人都指圖片。否則我會顯示默認圖片。但我仍然沒有得到它們中的任何一個,例如我得到一張照片或默認圖片的第一個拇指。

+0

當你說'//圖像2,3,4'相同的過程中,有你保證,你還沒有做出複製/粘貼錯誤,反覆設定'thumb_image1.setImageBitmap(地圖);'多次,而不是'thumb_image2.setImageBitmap(map);','thumb_image3.setImageBitmap(map);'等 – FunkTheMonk

+0

@FunkTheMonk我仔細檢查了視圖和資源之間以及setImage之間的綁定。一切似乎都很好。 AFAIK我們可以在ListView的項目上做任何我們想要的,對吧? – 113408

+0

你能發佈完整的適配器getView()嗎? –

回答

0

正如你所說,你正在編程的權利,那麼我建議你檢查你的佈局文件爲。使用重量參數,以便所有ImageView在空間中獲得相同的比例。

<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

我已經做到了這一點,它沒有工作>但由於某種原因,現在它的工作。事情是我可以在沒有重量的情況下看到我的4個ImageView(在圖形編輯器上),但是在運行時我只能得到第一個。無論如何感謝您的快速回復。現在它運作 – 113408

+0

然後,如果它有用,請接受和upvote所以其他人可以從中受益 –