私のアプリケーションでは、モバイル データベースから画像をインポートし、これをアプリケーションの 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();
}
}
しかし、問題は、画像の数が多いと時間がかかりすぎることです。この時間を短縮するために非同期タスクについて聞いたことがありますが、コードに実装する方法がわかりません。解決策を教えてください。前もって感謝します..