IT运维流程库历史主题 · 只读
← 返回目录

Android如何获取SD卡上图片和视频的缩略图

如果我们需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 。
如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径。
  1. [java]
  2. Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
  3. //若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
  4. ContentResolver cr = this.getContentResolver();
  5. Cursor cursor = cr.query(originalUri, null, null, null, null);
  6. if (cursor == null) {
  7. return;
  8. }
  9. for (cursor.moveToFirst();!cursor.isAfterLast(); cursor.moveToNext()) {
  10. long thumbNailsId = cursor.getLong(cursor .getColumnIndex("_ID"));
  11. Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr,
  12. thumbNailsId, Video.Thumbnails.MICRO_KIND, null);
  13. //若为视频则为
  14. // Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr,
  15. // thumbNailsId, Video.Thumbnails.MICRO_KIND, null);
  16. return bitmap;
  17. }
  18. Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
  19. //若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
  20. ContentResolver cr = this.getContentResolver();
  21. Cursor cursor = cr.query(originalUri, null, null, null, null);
  22. if (cursor == null) {
  23. return;
  24. }
  25. for (cursor.moveToFirst();!cursor.isAfterLast(); cursor.moveToNext()) {
  26. long thumbNailsId = cursor.getLong(cursor .getColumnIndex("_ID"));
  27. Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr,
  28. thumbNailsId, Video.Thumbnails.MICRO_KIND, null);
  29. //若为视频则为
  30. // Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr,
  31. // thumbNailsId, Video.Thumbnails.MICRO_KIND, null);
  32. return bitmap;
  33. }
ƴ
更多安卓技术问题欢迎加群探讨:278744577,验证码:qy14,不写验证不予通过哟~