在我的应用程序中,我从移动数据库导入图像并将其显示到我的应用程序的 gridview 中。我在我的活动的 onCreate() 中编写了以下代码。
String[] projection = { MediaStore.Images.Media._ID,};
Cursor mImageCursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null );
if (mImageCursor != null)
{
mImageCursor.moveToFirst();
for (int i = 0; i < mImageCursor.getCount(); i++)
{
Images im=new Images();
eachImageView=new ImageView(this);
int imageId = mImageCursor.getInt((mImageCursor.getColumnIndex( MediaStore.Images.Media._ID)));
selectedImageUri = Uri.withAppendedPath(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + imageId);
ContentResolver cr = getContentResolver();
Bitmap bm = getScaledImage(selectedImageUri, 2, cr);
im.setBitmap(bm);
eachImageView.setImageBitmap(bm);
im.setImageView(eachImageView);
arrayOfImages.add(im);
mImageCursor.moveToNext();
}
}
但问题是当图像数量更多时需要太多时间。我听说过异步任务可以减少这个时间,但我很困惑如何在我的代码中实现它。请给我解决方案。提前致谢..