2014-11-24 43 views
0

我想顯示來自sdcard的的縮略圖gridview。我使用的是universal image loader,圖片加載需要合理的時間。如何在合理的時間從mediastore獲取縮略圖的路徑以在gridview中加載圖像?

我的問題是:試圖讓縮略圖的所有路徑花費太多的時間,並導致gridview滾動滯後。如果我嘗試閱讀加載圖像前的所有路徑,則需要10秒(S5上的500個圖像)。我看到很多應用程序已經解決了這個問題,似乎我在這裏犯了一些fundemantal錯誤,但我找不到它是什麼。

PS:我從stackoverflow的答案中得到了這段代碼,我認爲我的問題與代碼無關,但它與我對問題的處理方法有關。 這裏是代碼:

public static String getThumbnailPath(Activity activity, long imageId) { 
    String[] proj = { MediaStore.Images.Media.DATA }; 
    Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 

    CursorLoader cursorLoader = new CursorLoader(activity, uri, proj, null, null, null); 
    Cursor cursor = cursorLoader.loadInBackground(); 



    cursor.moveToFirst(); 

    String result=""; 
    cursor = MediaStore.Images.Thumbnails.queryMiniThumbnail(activity.getContentResolver(), imageId, 
      MediaStore.Images.Thumbnails.MINI_KIND, null); 
    if (cursor != null && cursor.getCount() > 0) { 
     cursor.moveToFirst(); 
     result = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails.DATA)); 
     cursor.close(); 
    } 

    result = "file://" + result; 
    return result; 
} 
+0

使用分頁?即一次僅加載幾篇文章。不是所有的人。你可以谷歌如何做到這一點 – Darpan 2014-11-24 12:33:53

+0

請張貼相關的源代碼。 – 2014-11-24 12:34:09

+0

當他們需要顯示時,我只加載其中的一小部分,但當用戶滾動gridview時會導致滯後。 – user65721 2014-11-24 12:36:04

回答

0

看看盧卡斯羅沙的冰沙。這是一個用於快速滾動列表視圖和網格視圖的圖書館項目。我在我的應用程序播放列表管理器中使用它。易於實施。

相關問題