Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免在Gridview(Android)中加载图像的时间_Android_Android Asynctask_Android Gridview - Fatal编程技术网

避免在Gridview(Android)中加载图像的时间

避免在Gridview(Android)中加载图像的时间,android,android-asynctask,android-gridview,Android,Android Asynctask,Android Gridview,在我的应用程序中,我从移动数据库导入图像并将其显示到应用程序的gridview中 String[] projection = { MediaStore.Images.Media._ID,}; Cursor mImageCursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null ); if (mImageCu

在我的应用程序中,我从移动数据库导入图像并将其显示到应用程序的gridview中

    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();
        }
    }
String[]projection={MediaStore.Images.Media.\u ID,};
Cursor mImageCursor=getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,projection,null,null);
if(mImageCursor!=null)
{
mImageCursor.moveToFirst();
对于(int i=0;i
但问题是,当图像的数量更多时,它需要花费太多的时间。我听说异步任务可以减少这一时间,但我不知道如何在代码中实现它。 请给我提供解决方案。
提前感谢。

如果要在不冻结UI线程的情况下执行操作,请使用AsyncTask。 在你的情况下,你可以用一个。但是,似乎在活动启动时正在加载图像,以便可以使用加载程序

文档和DemoApi中提供了非常好的示例