Android uygulamamdaki görüntü yüklemesini işlemek için Picasso çerçevesini kullanıyorum. Görüntü yüklendikten sonra, bazı maskeleme işlemlerini uygulamak için Çizilebilir öğesine erişmem gerekiyor. Sorun, Picasso'nun Çizilebilir'i bir PicassoDrawable'a dönüştürmesi ve Drawable'a basit bir geri dönüşün işe yaramamasıdır.Picasso kullanırken nasıl çizilebilir?
Picasso.with(mContext).load(image.getPath()).into(mImageView, new Callback() {
@Override
public void onSuccess() {
Util.applyMask(imageView);
}
@Override
public void onError() {
}
});
ve Util.applyMask (ImageView) yöntemi:
Bu
Ben kodupublic static void applyMask(ImageView imageView) {
// this is where a class cast exception happens since it's actually a PicassoDrawable and not a Drawable
Bitmap mainImage = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
// ...
}
Muhtemel bir çözüm, bu github sayısında Jake Wharton tarafından verilir: https://github.com/square/picasso/issues/38
Özetle, çözümdür:. "Eğer Bitmap erişimi istiyorsanız doğrudan o zaman hedef geri aramalar kullanmanız gerekir PicassoDrawable fa sağlamak için kullanılır Ding ve hata ayıklama göstergesi. "
Hedef geri aramaya nasıl erişileceğinden tam olarak emin değilim. Bunu nasıl çözecek bilen var mı?
Teşekkürler.
private Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
}
@Override
public void onBitmapFailed() {
}
}
private void loadBitmap() {
Picasso.with(this).load("url").into(target);
}
kredisi: – Henrique
@dnkoutso Bunun yerine 'Transformation' yoluyla maske uygulamalıdır. Bu, ana iş parçacığı üzerinde çalışmaktan kaçınacak ve ayrıca Picasso, bellekte son bitmap'i önleyecek. Tekrar soruyorsan, işi tekrar yapmak zorunda kalmayacaksın. – dnkoutso
Ayrıca cevabı doğru olarak işaretlemelisiniz :) – dnkoutso