2015-02-10 9 views
6

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

Currentyly सभी फोन तस्वीरें क्वेरी करने के लिए इस का उपयोग कर im:

Cursor cursor; 
    String[] columns = new String[] { 
      MediaStore.Images.ImageColumns._ID, 
      MediaStore.Images.ImageColumns.TITLE, 
      MediaStore.Images.ImageColumns.DATA}; 
    cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
      columns, null, null, null); 
    int columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID); 
    int columnPath = cursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA); 

और MediaStore.Images.Thumbnails.getThumbnail imageView करने के लिए सुई थंबनेल के बिटमैप मिलता है।

मैं पिकासो का उपयोग करके इसे कैसे कार्यान्वित कर सकता हूं?

उत्तर

4

बहुत आसान। यूआरआई बनाने के लिए बस Uri.withAppendedPath का उपयोग करें और फिर इसे पिकासो को खिलाएं। उत्तरार्द्ध सही छवि लाने के लिए आंतरिक रूप से MediaStoreRequestHandler का उपयोग करेगा।

// Use the cursor you've defined (correctly) 
int columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID); 
Uri imageURI = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, Integer.toString(columnIndex)); 
Picasso 
    .with(context) 
    .load(imageURI) 
    .fit() 
    .centerInside() 
    .into(imageView); 
+2

यह सही थंबनेल प्राप्त नहीं करेगा, क्योंकि आप प्रदर्शित करने के लिए छवि की आईडी के रूप में 'कॉलम इंडेक्स' प्रदान कर रहे हैं। डिफ़ॉल्ट प्रक्षेपण का उपयोग करके, कॉलम अनुक्रमणिका 0 है, इसलिए आप मीडिया स्टोर में पहले थंबनेल को प्राप्त करेंगे। –

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