2016-08-31 2 views
-2

글라이드를 사용하여 이미지를 다운로드하고 listview에 표시하고 있습니다. 나는 그 목록 뷰를 스크롤 한 다음 다시 돌아갈 때 이미지가 연속적으로 변경된다는 사실을 알고 있습니다. 다시 다운로드되지는 않지만보기의 재활용에 문제가있을 때 변경됩니다. 내 코드가있다.목록보기로 건너 뛰기

 storageRef2.getDownloadUrl() 
     .addOnSuccessListener(new OnSuccessListener<Uri>() { 
          @Override 
          public void onSuccess(Uri uri) { 

           Glide.with(getApplicationContext()) 
             .load(uri) 
             .asBitmap() 
             .listener(new RequestListener<Uri, Bitmap>() { 
              @Override 
              public boolean onException(Exception e, Uri model, 
                     Target<Bitmap> target, boolean isFirstResource) { 

               Log.d(LOG_TAG, "glide failed " + e.getMessage()); 
               return false; 
              } 

              @Override 
              public boolean onResourceReady(Bitmap resource, Uri model, 
                      Target<Bitmap> target, 
                      boolean isFromMemoryCache, boolean isFirstResource) { 

               Log.d(LOG_TAG, model.toString()); 
               viewHolder.progress.setVisibility(View.GONE); 
               return false; 
              } 
             }) 
             .centerCrop() 
             .into(viewHolder.child_view); 

          } 
         }).addOnFailureListener(new OnFailureListener() { 
        @Override 
        public void onFailure(@NonNull Exception exception) { 
         // Handle any errors 
        } 
       }); 
+0

는 무관 태그 스팸 수행하십시오. 또한 어댑터 코드 –

답변

0

뷰어 홀더를 바인딩 할 때 아무데도 이미지가 지워지지 않는 것처럼 보입니다. 글라이드에서는 어떤 종류의 자리 표시 자도 사용하지 않으므로 글라이드는 이미지를 성공적으로로드 할 때를 제외하고는 ImageView에 아무 것도하지 않습니다. 뷰 홀더를 재활용하면 새 이미지가 대체 될 때까지 기존 이미지가 그대로 유지됩니다.

글라이드 빌더 코드와 함께 .placeHolder(null)을 사용해 보거나 글라이드를로드하기 전에 viewHolder.child_view.setImageDrawable(null)을 호출하여 기존 이미지를 제거하십시오.

0

Glide.with(mContext).diskCacheStrategy(DiskCacheStrategy.ALL) 
+0

을 표시하십시오.이 질문에 대한 답을 제공하지 않습니다. 충분한 [평판] (http://stackoverflow.com/help/whats-reputation)이 있으면 [모든 게시물에 댓글을 달 수 있습니다] (http://stackoverflow.com/help/privileges/comment); 대신에 [질문자의 설명이 필요없는 답변을 제공하십시오] (http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do- 대신). - [From Review] (리뷰/저품절 게시물/15416659) – GhostCat