从内置存储的Android手机上的图库中获取图像

san*_*ana 7 android gridview image-gallery android-gallery

嗨,我正在开发一个Android Gallery应用程序,我从内置库中获取图像并显示它.我正在使用如下代码

        String[] projection = {MediaStore.Images.Thumbnails._ID};


   Cursor cursor = getContentResolver().query(MediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI,
                projection, // Which columns to return
                null,       // Return all rows
                null,       
                null);


        int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
        int size = cursor.getCount();
        // If size is 0, there are no images on the SD Card.
        if (size == 0) 
        {
            Log.e("size 0","0");
        }
Run Code Online (Sandbox Code Playgroud)

问题是,当我在仅具有内部存储(Galaxy Nexus)的手机上运行此代码时,即使内置图库中有图像,我也会收到大小为零的Log.我该如何解决这个问题.请帮忙.谢谢!

Aru*_*n C 4

要获取图库图像列表,您可以尝试此操作

String[] projection = new String[]{
        MediaStore.Images.Media._ID,
        MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
        MediaStore.Images.Media.DATE_TAKEN
};


Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;


Cursor cur = getContentResolver().query(imageUri,
        projection, // Which columns to return
        null,       // Which rows to return (all rows)
        null,       // Selection arguments (none)
        null        // Ordering
        );

Log.i("Images Count"," count="+cur.getCount());
Run Code Online (Sandbox Code Playgroud)