2014-09-12 9 views
10

मैं यूआरएल से छवि लोड करने के लिए पिकासो लाइब्रेरी का उपयोग कर रहा हूं। मेरे द्वारा उपयोग किया गया कोड नीचे है।एंड्रॉइड पिकासो लोड होने के बाद चित्रकारी छवि प्राप्त करें

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

मैं जो करना चाहता हूं वह यूआरएल से लोड की गई छवि को प्राप्त करना है। मैंने

Drawable image = imageView.getDrawable(); 

हालांकि, यह हमेशा यूआरएल से छवि लोड के बजाय प्लेसहोल्डर छवि वापस कर देगा। क्या आपके पास कोई विचार है? मुझे ड्रॉ करने योग्य छवि को कैसे एक्सेस करना चाहिए जो इसे यूआरएल से लोड किया गया है।

अग्रिम धन्यवाद।

उत्तर

17

ऐसा इसलिए है क्योंकि छवि असीमित रूप से लोड हो रही है।

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); 
+0

मैं का उपयोग कैसे कर सकते हैं loadBitmap(): आप drawable जब यह दृश्य में लोड होना पूरा हो पाने के लिए की आवश्यकता है? मुझे पिकासो को दो बार फोन करने की ज़रूरत है? – Shumin

+0

नहीं, यह सिर्फ एक शून्य विधि है जिसे आप छवि लोड करने के लिए बुलाएंगे। आपको इसकी आवश्यकता नहीं है (अद्यतन उत्तर देखें) – Shane

+0

यह बेकार है, 'फिट, सेंटरक्रॉप' काम नहीं करेगा, फिर पिकासो का उपयोग करने में क्या बिंदु है ?? आप सामान्य पिकासो कॉलबैक साथ drawable प्राप्त कर सकते हैं: नई कॉलबैक (targetImageView, में '() { \t \t \t @Override सार्वजनिक शून्य onSuccess() { targetImageView.getDrawable();} ' – user924

1
 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() { 
           // ... 
          } 
         }); 
      } 
     }); 
+1

आप कुछ स्पष्टीकरण जोड़ सकते हैं यह कोड समस्या हल क्यों करता है। – mustaccio

संबंधित मुद्दे