0

我想制作一个网格视图以显示 sdcard 文件夹中照片的缩略图。图像分辨率为 3264x2448。我使用带有配置的 Notras 通用图像加载器库:

DisplayImageOptions options = new DisplayImageOptions.Builder()
            .showStubImage(R.drawable.stub)
            .showImageForEmptyUri(R.drawable.stub)
            .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
            .showImageOnFail(R.drawable.ic_launcher).cacheInMemory()
            .cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565).build();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
            context).defaultDisplayImageOptions(options).build();

以及我的自定义适配器中的 getView():

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    final ImageView imageView;
    if (convertView == null) {
        imageView = (ImageView) mInflater.inflate(R.layout.grid_item,
                parent, false);
    } else {
        imageView = (ImageView) convertView;
    }

    mImageLoader.displayImage(mListData.get(position), imageView, options);

    return imageView;
}

但是它加载图像太慢了。所以请帮助我更快地加载缩略图。我不想显示高质量的图像,我只想快速显示。

提前致谢。

UIL 版本:1.8.4 Android 版本测试于:2.3.3

4

2 回答 2

1

您可以使用它来获取缩略图:

Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(
                         getContentResolver(), selectedImageUri,
                         MediaStore.Images.Thumbnails.MINI_KIND,
                         (BitmapFactory.Options) null );

有两种类型的缩略图可用: MINI_KIND:512 x 384 缩略图 MICRO_KIND:96 x 96 缩略图

或者使用具有几乎相同参数的 queryMiniThumbnail 来获取缩略图的路径。

Cursor cursor = MediaStore.Images.Thumbnails.queryMiniThumbnail(
                         getContentResolver(), selectedImageUri,
                         MediaStore.Images.Thumbnails.MINI_KIND,
                         null );
if( cursor != null && cursor.getCount() > 0 ) {
 cursor.moveToFirst();//**EDIT**
 String uri = cursor.getString( cursor.getColumnIndex( MediaStore.Images.Thumbnails.DATA ) );
}

您可以在 imageloader 中使用此 uri 来查看缩略图

参考和详细说明

于 2013-05-29T10:04:43.190 回答
1

尝试.discCacheExtraOptions(800, 800, CompressFormat.PNG, 0)在配置中使用。您可以根据设备的最大尺寸改变值“800”。

于 2013-05-29T15:39:16.477 回答