如果我们需要快速提取图片和视频缩略图可以直接访问android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 。如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径。
Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
//若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
ContentResolver cr = this.getContentResolver();
Cursor cursor = cr.query(originalUri, null, null, null, null);
if (cursor == null) {
return;
}
for (cursor.moveToFirst();!cursor.isAfterLast(); cursor.moveToNext()) {
long thumbNailsId = cursor.getLong(cursor .getColumnIndex("_ID"));
Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr,thumbNailsId, Video.Thumbnails.MICRO_KIND, null);
//若为视频则为
// Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr,
// thumbNailsId, Video.Thumbnails.MICRO_KIND, null);
return bitmap;
}
另一个例子:
String[] projection = { MediaStore.Images.Thumbnails._ID,MediaStore.Images.Thumbnails.DATA};
Cursor cursor = mActivity.getContentResolver().query(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,//指定缩略图数据库的Uri
projection,//指定所要查询的字段
MediaStore.Images.Thumbnails._ID+ " = ?",//查询条件
newString[] {"123" }, //查询条件中问号对应的值
null);
cursor.moveToFirst();
String id = cursor.getString(0);
String data = cursor.getString(1);
查询图片缩略图数据库,获取id等于123的缩略图信息。
转换成Sql语句即为 select MediaStore.Images.Thumbnails._ID,MediaStore.Images.Thumbnails.DATA fromMediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI whereMediaStore.Images.Thumbnails._ID = 123
如果要查询图片,Uri地址为:MediaStore.Images.Media.EXTERNAL_CONTENT_URI
当要获取缩略图时:Bitmap bitmap =MediaStore.Images.Thumbnails.getThumbnail (mActivity.getContentResolver(), id,Thumbnails.MICRO_KIND, null)
特此记录共享