2017-03-20 6 views
0

이미지를 다운로드하여 imageView에 표시하기 위해 Picasso 라이브러리를 사용하고 있습니다. 이 라이브러리는 또한 이미지를 캐시 및 메모리에 저장합니다. 인터넷이 켜지면 imageView에서 이미지를 볼 수 있습니다. 그래서 나는 캐시 메모리 또는 파일 메모리에 저장해야한다고 생각한다. 이제 내 인터넷은 turnOFF이지만 이미지에는 표시되지 않습니다. 친절하게 봐.피카소 라이브러리를 사용하여 캐시 메모리에서 이미지가 표시되지 않습니다.

Picasso.with(context) 
    .load(url) .placeholder(R.drawable.defaultimg) 
    .networkPolicy(NetworkPolicy.OFFLINE) 
    .into(holder.imageview2, new ImageLoadedCallback(holder.loadingBar) { 
    @Override 
    public void onSuccess() { 
     if (holder.loadingBar != null) { 
      holder.loadingBar.setVisibility(View.GONE); 
     } 
    } 
    @Override 
    public void onError(){ 
     holder.loadingBar.setVisibility(View.VISIBLE); 
     Picasso.with(context) 
      .load(url) .placeholder(R.drawable.defaultimg) 
      .into(holder.imageview2, new ImageLoadedCallback(holder.loadingBar) { 

      @Override 
      public void onSuccess() { 
       if (holder.loadingBar != null) { 
        holder.loadingBar.setVisibility(View.GONE); 
       } 
      } 

      @Override 
      public void onError() { 
       if (holder.loadingBar != null) { 
        holder.loadingBar.setVisibility(View.GONE); 
       } 
      } 
     }); 
    } 
}); 
+0

인터넷이 ** 꺼짐 ** 인 경우 이미지가 캐싱되었는지 여부에 관계없이 원본은 라이브러리에 맞게 수정되어 예외를 throw하고 캐시 된 이미지를 표시하지 않습니다. 인터넷이 꺼져있을 때 이미지를 다운로드하고 로컬 경로를 제공하거나 인터넷이없는 경우 적절한 자리 표시 자 이미지를 제공하십시오. –

+0

@ 모함메드 나는 그것이 사실이라고 생각하지 않습니다. [Jake는 Picasa 문제 추적기에서이 문제를 해결했습니다.] (https://github.com/square/picasso/issues/698#issuecomment-58745858) –

+0

Picasa 캐시 이미지를 사용하는 @Mohammed Atif 내 앱을 표시하고 심지어 표시합니다. 인터넷이 꺼져있을 때. –

답변

0

마지막으로 그 문제를 해결했습니다. 감사합니다. @ dev.bmax

image url 올바르지 않습니다. Picasso에 버그가 있습니다. 우리는 피카소가 표시 이미지 수

https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg?500|700

으로 같은 URL이있는 경우 때 인터넷 ON TURN하지만 우리는 인터넷에
끄기 경우,이 URL을 디코딩하지 않습니다. 또한 이미지를 표시하지 않습니다.

? 500 | 700을 제거해야만 오프라인 모드로 이미지를 볼 수있었습니다. //url.substring (0, url.indexOf ("?"))

https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg

감사합니다!