2016-06-14 1 views
0

이미지를 선택하기 위해 gridview 및 gridviewadapter를 정의합니다. 2 개 이상의 이미지를 선택하면 모두 잘 작동합니다. 그러나 1을 선택하면 위치 = 1이 positon = 0의 이미지로 덮여 있으며 처음으로 이미지 1 개를 선택하는 경우에만 발생합니다.Android : ImageView.setImageResource가 gridviewadapter에서 올바르게 표시되지 않습니다.

@Override 
    public View getView(final int position, View convertView, final ViewGroup parent) { 
     L.d("mytest position ="+position+ "converView ="+convertView); 
     Holder holder; 
     if (convertView == null) { 
      holder = new Holder(); 
      convertView = mInflater.inflate(R.layout.grid_view_item, null); 
      holder.mSelectImage = (NGImageView) convertView.findViewById(R.id.iv_icon); 
      convertView.setTag(holder); 
     } else { 

      holder = (Holder) convertView.getTag(); 
     } 
     if (getData().size() > 0 && position != getData().size()) { 
      holder.mSelectImage.setVisibility(View.VISIBLE); 
      ImageItem imageItem = getData().get(position); 
      if (imageItem != null) { 
       if (imageItem.getImageUri().toString().startsWith("http")) { 
        loadNGImageView.LoadOptionsView(imageItem.getImageUri().toString(),holder.mSelectImage); 

       } else { 
        String imgUrl = BitmapUtil.IMAGE_URI_SUFFIX_SDCARD + imageItem.getImageUri().getPath(); 
        L.d("mytest LoadOptionsView"); 
        loadNGImageView.LoadOptionsView(imgUrl,holder.mSelectImage); 
       } 
      } 
     } else { 
      if (position == TopicPostFragment.DEFAULT_PHOTO_COUNT) { 
       holder.mSelectImage.setVisibility(View.GONE); 
      } else { 
       holder.mSelectImage.setVisibility(View.VISIBLE); 
       L.d("mytest setImageResource"); 
       holder.mSelectImage.setImageResource(R.drawable.guild_icon_img); 
      } 

     } 

     return convertView; 
    } 

error logs: 
mytest position =0 converView =null 
mytest setImageResource 

mytest position =0 converView =android.widget.FrameLayout{42cd7de8 V.E.....  
......I. 0,0-0,0 #7f0b0113 app:id/fl_item} 
mytest setImageResource 

        ...... 

mytest position =0 converView =android.widget.FrameLayout{42eabc00 V.E..... 
........ 0,0-90,90 #7f0b0113 app:id/fl_item} 
mytest LoadOptionsView 

mytest position =1 converView =android.widget.FrameLayout{42cd7de8 V.E..... 
......I. 0,0-0,0 #7f0b0113 app:id/fl_item} 
mytest setImageResource 

에러 표시 : enter image description here

정확한 표시 : enter image description here

XML 파일 : 흐르는는 어댑터의 getView()이다

setImageResource가에 setImageURL 사용할 수 없습니다
<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:fresco="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/fl_item" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_gravity="center"> 
    <ImageView 
     android:id="@+id/iv_icon" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:scaleType="centerCrop" 
    /> 
</FrameLayout> 
+0

xml보기 데이터를 표시하십시오. – Alexander

+0

줄 holder.mSelectImage.setImageResource (R.drawable.guild_icon_img)를 바꿉니다. 코드로드 NGImageView.LoadOptionsView ("http://pic3.nipic.com/20090527/2488154_225452038_2.jpg", holder.mSelectImage); 모든 것이 잘됩니다. 이것은 setImageResource가 실제로 imageview에 이미지를 추가 할 수 없다는 것을 보여줍니다. 그 이유는 무엇입니까? – judyzha

+0

@Alexander XML보기 데이터를 추가했습니다 ~ – judyzha

답변

0

동시에, setImageURL는 setImageResource를 커버하는 경우가 있습니다. 잘못된 표시를하십시오. 동시에 사용하는 경우에는 먼저 setImageURL (null)을 설정 한 다음 setImageResource를 사용해야합니다.