2013-08-11 9 views
5

मैं thumnail पथ, बिटमैप ऑब्जेक्ट्स नहीं प्राप्त करने का प्रयास कर रहा हूं।
जब मैं इनके लिए पूछता हूं, तो कुछ थंबनेल पथ कुछ कारणों से शून्य होते हैं। (मेरे डिवाइस में 1028 थंबनेल छवियां हैं, कर्सर की लंबाई वास्तव में 1028 है, लेकिन फिर भी नल लौट रही है) मुझे पता है कि 1028 थंबनेल छवियां हैं क्योंकि मैंने जांच की है।छवियां थंबनेल फ़ाइल पथ प्राप्त करें

 String[] projection = {MediaStore.Images.Thumbnails._ID}; 
    // Create the cursor pointing to the SDCard 

    cursor = this.getContentResolver().query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, 
      projection, // Which columns to return 
      null,  // Return all rows 
      null, 
      MediaStore.Images.Thumbnails.IMAGE_ID); 
    // Get the column index of the Thumbnails Image ID 
    Log.d(Global.TAG, "BEFORE"); 
    columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID); 
    Log.d(Global.TAG, "AFTER1"); 
    for(int i =0;i<cursor.getCount();i++){ 
     cursor.moveToPosition(i); 

     Log.d("MyTag","BBABA" + i +" : " + getThumbnailPathForLocalFile(cursor.getLong(columnIndex))); 
    } 
    cursor.close(); 

मेरे getThumbnailPathForLocalFile: http://pastebin.com/UZLZF9Pg

की जाँच के बाद, मुझे लगता है कि आईडी मैं भेज बस के लिए के सूचकांक की तरह हैं:

String getThumbnailPathForLocalFile(long fileId) 
{ 
    // Log.d(Global., msg) 
    Cursor thumbCursor = null; 
    try 
    { 
     thumbCursor = this.getContentResolver(). 
       query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI 
       , null 
       , MediaStore.Images.Thumbnails.IMAGE_ID + " = " + fileId+ " AND " 
        + MediaStore.Images.Thumbnails.KIND + " = " 
        + MediaStore.Images.Thumbnails.MINI_KIND , null, null); 

     if(thumbCursor.moveToFirst()) 
     { 
      // the path is stored in the DATA column 
      int dataIndex = thumbCursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA); 
      String thumbnailPath = thumbCursor.getString(dataIndex); 
      return thumbnailPath; 
     } 
    } 
    finally 
    { 
     if(thumbCursor != null) 
     { 
      thumbCursor.close(); 
     } 
    } 

    return null; 
} 

यहाँ मेरी logcat है यहाँ मेरी कोड है पाश। मुझे यह भी यकीन नहीं है कि मेरा कोड काम करना है, इसलिए कोई अन्य कोड बहुत अच्छा होगा।

+1

तुम क्यों MediaStore.Images.Thumbnails._ID करने के लिए अपने अनुमान स्थापित किया था और न MediaStore.Images.Thumbnails.DATA? –

+0

@ इगोरगानापोलस्की मुझे यकीन नहीं है। मुझे लगता है कि मैंने उस उदाहरण को कहीं से दूर ले लिया। क्या आपको लगता है कि यह समस्या हल कर सकता है? वैसे भी, यह पहले से ही irrelavant है। – idish

+0

मैं पूछ रहा था क्योंकि मैंने {MediaStore.Images.Thumbnail.DATA} का उपयोग किया था, बस समाधान की तरह, और यह काम किया। तो अगर आप एक अलग दृष्टिकोण था तो मैं उत्सुक था। –

उत्तर

11

आपको MediaStore.Images.Thumbnails.DATA के लिए पूछना चाहिए। अपने उदाहरण को संशोधित करने के लिए, यह ऐसा दिखाई देगा।

String[] projection = {MediaStore.Images.Thumbnails.DATA}; 
// Create the cursor pointing to the SDCard 

    Cursor cursor = this.getContentResolver().query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, 
     projection, // Which columns to return 
     null,  // Return all rows 
     null, 
     null); 
// Get the column index of the Thumbnails Image ID 
Log.d(TAG, "BEFORE"); 
int columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA); 
Log.d(TAG, "AFTER1"); 
for(int i =0;i<cursor.getCount();i++){ 
    cursor.moveToPosition(i); 

    Log.d("MyTag","BBABA" + i +" : " + cursor.getString(columnIndex)); 
} 
cursor.close(); 

संदर्भ: How to get imagepath from thumbnail path of a image?

+0

यह बहुत अच्छा है, काम करता है !!! बहुत बहुत धन्यवाद, मैं इस समाधान के लिए बहुत कुछ देख रहा हूं :) – idish

+0

अरे, उम्मीद है कि आप मुझे एक और छोटे प्रश्न के साथ मदद कर सकते हैं: मैंने अपनी सभी गैलरी छवियों को हटा दिया है, और फिर कैमरे के साथ लगभग 12 छवियां ली हैं। बाद में, मैंने गैलरी में प्रवेश किया, और थंबनेल अच्छी तरह से प्रदर्शित किया। हालांकि, जब मैंने उन थंबनेल को प्रदर्शित करने के लिए अपने ऐप में प्रवेश किया, तो मुझे कोई नहीं दिखाई देता। DCIM में Tubnails फ़ोल्डर को देखने के बाद, कोई jpg फ़ाइलें बिल्कुल नहीं हैं, लेकिन केवल एक अजीब फ़ाइल है जो वजन 10.9 एमबी है। क्या आप जानते हैं क्यों मेरा। थंबनेल फ़ोल्डर मेरे थंबनेल नहीं दिखाता है? – idish

+0

@idish कृपया इसे एक अलग प्रश्न के रूप में खोलें और अधिक जानकारी प्रदान करें ('अजीब फ़ाइल' का नाम क्या है), फोन विवरण और ओएस संस्करण भी। – yogurtearl

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