2015-01-17 8 views
0

유니버설 이미지 로더를 사용하고 있으며 각 행에 이미지가있는 ListView이 있습니다. 빠르게 스크롤 다운하면 이미지가 업데이트되지 않고 이전 이미지가 사용됩니다. 그러나 천천히 아래로 스크롤 할 때 이미지를 업데이트 할 수는 있지만 다소 시간이 걸립니다. 이것은 목록 자체가 반복되고 있다는 인상을줍니다.UIL - listview 재사용으로 인해 이미지가 천천히 업데이트됩니다.

options = new DisplayImageOptions.Builder() 
      .cacheInMemory(true) 
      .cacheOnDisk(true) 
      .considerExifParams(true) 

      .displayer(new FadeInBitmapDisplayer(0, true, false, false)) 
      .build(); 

그리고 이것은 내 이미지 getView() -method로드 방법은 다음과 같습니다 : 이 내 옵션은

    ImageLoader.getInstance().displayImage(MY_IMAGE_URL+imageid, holder.imgView, options, new SimpleImageLoadingListener() { 
         @Override 
         public void onLoadingStarted(String imageUri, View view) { 
          holder.progressBar.setVisibility(View.VISIBLE); 
          holder.placeHolder.setVisibility(View.VISIBLE); 
         } 
         @Override 
         public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 
          String message = null; 
          switch (failReason.getType()) { 
           case IO_ERROR: 
            message = "Input/Output error"; 
            break; 
           case DECODING_ERROR: 
            message = "Image can't be decoded"; 
            break; 
           case NETWORK_DENIED: 
            message = "Downloads are denied"; 
            break; 
           case OUT_OF_MEMORY: 
            message = "Out Of Memory error"; 
            break; 
           case UNKNOWN: 
            message = "Unknown error"; 
            break; 
          } 
          //Toast.makeText(ImagePagerActivity.this, message, Toast.LENGTH_SHORT).show(); 

          holder.progressBar.setVisibility(View.GONE); 
         } 

         @Override 
         public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
          holder.progressBar.setVisibility(View.GONE); 
          holder.placeHolder.setVisibility(View.GONE); 
         } 
        }); 

가 어떻게 이미지가 목록보기에 올바르게로드됩니다 보장 할 수 있습니까?

답변

0

options = new DisplayImageOptions.Builder() 
       .showImageOnLoading(android.R.color.transparent) 
       .showImageForEmptyUri(android.R.color.transparent) 
       .showImageOnFail(android.R.color.transparent) 
       .cacheInMemory(true) 
       .cacheOnDisk(true) 
       .considerExifParams(true) 
       .bitmapConfig(Bitmap.Config.RGB_565) 
       .build(); 

표시를 다음과 같이 ..

ImageLoader.getInstance().displayImage(MY_IMAGE_URL+imageid, holder.imgView, options); 

어댑터 내부에 이미지를로드 할 ..

업데이트 DisplayImageOptions을이 시도하고 onPreExecute() 내부의 ProgressBar를 숨기고 AsyncTaskonPostExecute()은 인 목록을 포함하는 부분/활동에 의해 호출 됨