/ / android obtenir une image dessinable après le chargement de picasso - android, callback, drawable, target, picasso

android get Drawable image après picasso chargé - android, rappel, drawable, cible, picasso

J'utilise la bibliothèque Picasso pour charger l'image à partir de l'URL. Le code que j'ai utilisé est ci-dessous.

Picasso.with(getContext()).load(url).placeholder(R.drawable.placeholder)
.error(R.drawable.placeholder).into(imageView);

Ce que je veux faire, c'est récupérer l'image chargée à partir de l'URL. j'ai utilisé

Drawable image = imageView.getDrawable();

Cependant, cela renverra toujours l'image d'espace réservé au lieu de la charge d'image à partir de l'URL. Avez-vous une idée? Comment dois - je accéder à l 'image dessinable qu'elle vient de charger depuis l' URL.

Merci d'avance.

Réponses:

20 pour la réponse № 1

En effet, l'image se charge de manière asynchrone. Vous devez obtenir le dessinable une fois le chargement terminé dans la vue:

   Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
imageView.setImageBitmap(bitmap);
Drawable image = imageView.getDrawable();
}

@Override
public void onBitmapFailed(Drawable errorDrawable) {}

@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {}
};

Picasso.with(this).load("url").into(target);

1 pour la réponse № 2
        mImageView.post(new Runnable() {
@Override
public void run() {
mPicasso = Picasso.with(mImageView.getContext());
mPicasso.load(IMAGE_URL)
.resize(mImageView.getWidth(), mImageView.getHeight())
.centerCrop()
.into(mImageView, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
Drawable drawable = mImageView.getDrawable();
// ...
}

@Override
public void onError() {
// ...
}
});
}
});