如何在合理的时间内从mediastore获取缩略图的路径以在gridview中加载图像?

时间:2014-11-24 12:28:24

标签: android thumbnails mediastore

我正试图在gridview中显示来自sdcard的图片缩略图。我正在使用universal image loader,图片加载需要合理的时间。

我的问题是:尝试获取缩略图的所有路径需要花费太多时间并导致gridview滚动延迟。如果我尝试读取加载图像之前的所有路径,则需要10秒钟(S5上500张图像)。我看到很多应用程序已经解决了这个问题,似乎我在这里犯了一些有趣的错误,但我找不到它是什么。

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;
}

1 个答案:

答案 0 :(得分:0)

看看Lucas Rocha的冰沙。它是一个用于快速滚动列表视图和网格视图的库项目。我在我的应用播放列表管理器中使用它。易于实施。