在我的应用程序中,我从移动数据库导入图像并将其显示到我的应用程序的gridview中。我在我的activitiy的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();
}
}
但问题是当图像数量更多时需要花费太多时间。我听说过减少这个时间的异步任务但是我很困惑如何在我的代码中实现它。 请给我解决方案。 提前谢谢..