2015-01-07 3 views
4

Я использую Picasso и RoundedTransformation class, который применяет закругленные углы к изображению, которое я загружаю Picasso. Соответствующий код приведен ниже:Преобразование изображения не применяется после изменения ориентации с помощью Picasso

Transformation transformation = new RoundedTransformationBuilder() 
      .cornerRadiusDp(4) 
      .oval(false) 
      .build(); 

ImageView cardViewTop1Image = (ImageView) cardViewTop1.findViewById(R.id.cv_top1_image); 
Picasso.with(cardViewTop1.getContext()).load("http:/some_image_url.com") 
      .fit().centerCrop() 
      .transform(transformation).into(cardViewTop1Image); 

Это все прекрасно работает, пока я не пройти через два изменения ориентации - первый в горизонтальную ориентацию, а затем обратно в вертикальную ориентацию. Когда я вернусь к вертикальной ориентации, округленное преобразование больше не применяется.

Я считаю, что Пикассо кэширует не трансформированное изображение, а затем заполняет его ImageView. Есть ли способ кэшировать преобразованное изображение или загружать нетранзированное изображение из кеша, а затем применять преобразование? Спасибо за помощь!

+0

У меня также наблюдается аналогичная проблема. До сих пор найдено решение проблемы? – welshk91

ответ

0

Попробуйте этот подход, чтобы остановить кеширование.

Picasso.with(yourContext) 
     .load(yourUrl) 
     .memoryPolicy(MemoryPolicy.NO_CACHE) 
     .networkPolicy(NetworkPolicy.NO_CACHE) 
     .fit() 
     .centerCrop() 
     .transform(yourTransformation) 
     .into(yourImageView); 

Или попробуйте другое преобразование. Я использую это https://gist.github.com/aprock/6213395.

Смежные вопросы