【发布时间】:2013-08-14 07:00:25
【问题描述】:
您好,我正在开发一个 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");
}
问题是,当我在只有内部存储 (Galaxy Nexus) 的手机上运行此代码时,我得到的日志显示大小为零,即使内置图库中有图像。我该如何解决这个问题。 请帮忙。谢谢!
【问题讨论】:
-
尝试将
MediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI更改为MediaStore.Images.Media.EXTERNAL_CONTENT_URI -
用户媒体由 EXTERNAL_CONTENT_URI 访问。 INTERNAL_CONTENT_URI 仅供系统应用使用。
-
我尝试了 EXTERNAL_CONTENT_URI 和 INTERNAL_CONTENT_URI,EXTERNAL 在有 SD 卡的手机上运行良好,但在 Galaxy Nexus 等手机上无法运行(没有外部存储)
-
MediaStore.Images.Media.EXTERNAL_CONTENT_URI是您的 URI。如果图片的缩略图不可用,那么您的查询将返回 0 数据。所以你查询的是媒体而不是缩略图。 -
我尝试了 MediaStore.Images.Media.EXTERNAL_CONTENT_URI,这很好用,但从图库中获取 5 张图片也很慢!如何快速获取图片:MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
标签: android gridview image-gallery android-gallery