2016-01-17 4 views
3

Я использую Picasso для своего приложения для Android. Используя преобразования Picasso, я визуализировал изображения, преобразованные в некоторых разделах моего приложения, но когда я пытаюсь отобразить изображение в другой части, я также получаю преобразованное изображение. Как я могу получить исходное изображение, чтобы отобразить его без преобразования?Кэш Пикассо возвращает преобразованное изображение вместо оригинала

Вот пример кода.

String imageUrl = "http://path/image.png"; 

CustomTransformation *trans= new CustomTransformation(); 
Picasso.with(this).load(imageUrl).transform(trans).into(myImageView1); 
Picasso.with(this).load(imageUrl).into(myImageView2); 

После этого два вида изображения показываете изображение с преобразованием применяется к обоим из них

+0

Просьба указать код! – PatrickMA

+0

@PatrickMA Я добавил код, теперь он более понятен –

ответ

2

Вероятно, вы не установили ключ преобразования, поэтому механизм кэширования не видит разницы. Пример:

private Transformation blur = new Transformation() { 
    @Override 
    public Bitmap transform(Bitmap source) { 
     Bitmap blurred = BitmapUtils.createBlurredBitmap(source); 
     source.recycle(); 
     return blurred; 
    } 

    @Override 
    public String key() { 
     return "blurred"; //this will be added to the key that Picasso uses for caching 
    } 
}; 
//key: <uri>\nblurred 
void loadAndBlur(Uri uri, ImageView mPhoto) { 
     picasso.load(uri).transform(blur).into(mPhoto); 
} 
//key: <uri> 
void load(Uri uri, ImageView mPhoto) { 
     picasso.load(uri).into(mPhoto); 
}