2016-10-02 3 views
0

이미지를 한 번 다운로드 한 다음 동일한 Picasso 인스턴스를 사용하여 복수로로드하려면 ImageView? 지금은 이미지가 이미 캐시되고 다시 다운로드되지 않도록하기 위해 (아주 나쁜) 해결 방법을 사용하고 있습니다.Picasso - 이미지를 한 번 다운로드 한 다음 ImageView에로드하십시오.

Picasso.with(container.getContext()).load(photo.getPath()).placeholder(R.drawable.placeholder_outfit).fit().centerCrop().into(image1, new Callback() { 
    @Override 
    public void onSuccess() { 
     Picasso.with(container.getContext()).load(photo.getPath()).placeholder(R.drawable.placeholder_outfit).fit().centerCrop().into(image2); 
    } 

    @Override 
    public void onError() { 

    } 
}); 
+0

한 번 이미지를 다운로드합니다 –

+0

모든 피카소 내 대답은 아래를 확인합니다. 이미지를 캐싱합니다. 다시 사용하십시오. – DeeV

답변

0

당신은 이런 식으로 작업을 수행 할 수 있습니다

Picasso.with(container.getContext()) 
     .load(photo.getPath()) 
     .placeholder(R.drawable.placeholder_outfit) 
     .fit() 
     .centerCrop().into(image1, new Callback() { 

      @Override 
      public void onSuccess() { 
       imageView2.setImageDrawable(image1.getDrawable()); //Get the ImageView's image (this won't download it, it will get the downloaded image) and set it to your second imageView. 
      } 

      @Override 
      public void onError() { 

      } 
     }); 

은 추가 centerCrop() 사용하려면 :

imageView2.setScaleType(ImageView.ScaleType.CENTER_CROP); 
+0

이렇게하면 'imageView2'에 대한 Picasso.fit() .centerCrop() 자동 크기 조정을 사용하지 않아도됩니까? –

+0

@nicolaBeghin'imageView2'의 크기가'image1'과 같고 yes입니다. 그렇지 않으면 아니오. 나는 다른 해결책을 생각하고있다 :) –

+0

@NicolaBeghin 나는 길을 발견했다. 내 질문 수정 –

관련 문제