2015-04-03 8 views
5

मैं एक ऐप बनाना चाहता हूं जो पिकासो लाइब्रेरी का उपयोग कर ग्रिडव्यू में छवियां प्रदर्शित करता है। छवियों को रिमोट सर्वर द्वारा पुनर्प्राप्त किया जाता है। क्या मुझे एसिंक टास्क क्लास बनाना चाहिए या क्या इस वर्ग को पिकासो लाइब्रेरी द्वारा ही संभाला जाना चाहिए? मैंने अभी तक देखा है कि सभी पिकासो ट्यूटोरियल थोड़ा अस्पष्ट लग रहा है।पिकासो लाइब्रेरी और ग्रिड व्यू छवियां

धन्यवाद,

थीओ।

+2

हाँ एक शक्तिशाली छवि डाउनलोड करने और Android के लिए कैशिंग पुस्तकालय पिकासो। आपको छवि डाउनलोड करने के लिए एसिंक कार्य लिखने की आवश्यकता नहीं है, वे इस पुस्तकालय द्वारा संभालते हैं। अगर आपको अधिक जानकारी की आवश्यकता है तो मुझे बताएं कि मैं इसे कैसे लिखूं, मैं आपको ग्रिड व्यू में लागू करने के साथ दिखा सकता हूं। –

+0

उत्तर के लिए धन्यवाद। मैं इसे ग्रिडव्यू के साथ आज़माउंगा और अगर मुझे कोई समस्या है तो मैं आपसे पूछूंगा। – Theo

उत्तर

7

बहुत सरल इसके gridview, as demonstrated here में लोड हो रहा है छवियों के लिए पिकासो lib उपयोग करने के लिए,

class SampleGridViewAdapter extends BaseAdapter { 
    private final Context context; 
    private final List<String> urls = new ArrayList<String>(); 

    public SampleGridViewAdapter(Context context) { 
    this.context = context; 

    // Ensure we get a different ordering of images on each run. 
    Collections.addAll(urls, Data.URLS); 
    Collections.shuffle(urls); 

    // Triple up the list. 
    ArrayList<String> copy = new ArrayList<String>(urls); 
    urls.addAll(copy); 
    urls.addAll(copy); 
    } 

    @Override public View getView(int position, View convertView, ViewGroup parent) { 
    SquaredImageView view = (SquaredImageView) convertView; 
    if (view == null) { 
     view = new SquaredImageView(context); 
     view.setScaleType(CENTER_CROP); 
    } 

    // Get the image URL for the current position. 
    String url = getItem(position); 

    // Trigger the download of the URL asynchronously into the image view. 
    Picasso.with(context) // 
     .load(url) // 
     .placeholder(R.drawable.placeholder) // 
     .error(R.drawable.error) // 
     .fit() // 
     .tag(context) // 
     .into(view); 

    return view; 
    } 

    @Override public int getCount() { 
    return urls.size(); 
    } 

    @Override public String getItem(int position) { 
    return urls.get(position); 
    } 

    @Override public long getItemId(int position) { 
    return position; 
    } 
} 
+0

धन्यवाद मेरे दोस्त। ध्यान रखें। – Theo

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