android 获取视频,图片缩略图
16lz
2021-01-25
1、获取视频缩略图有两个方法(1)通过内容提供器来获取(2)人为创建缩略图
(1)缺点就是必须更新媒体库才能看到最新的视频的缩略图
/** * @param context * @param cr * @param Videopath * @return */ public static Bitmap getVideoThumbnail(Context context, ContentResolver cr, String Videopath) { ContentResolver testcr = context.getContentResolver(); String[] projection = { MediaStore.Video.Media.DATA, MediaStore.Video.Media._ID, }; String whereClause = MediaStore.Video.Media.DATA + " = '" + Videopath + "'"; Cursor cursor = testcr.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, whereClause, null, null); int _id = 0; String videoPath = ""; if (cursor == null || cursor.getCount() == 0) { return null; } if (cursor.moveToFirst()) { int _idColumn = cursor.getColumnIndex(MediaStore.Video.Media._ID); int _dataColumn = cursor.getColumnIndex(MediaStore.Video.Media.DATA); do { _id = cursor.getInt(_idColumn); videoPath = cursor.getString(_dataColumn); } while (cursor.moveToNext()); } cursor.close(); BitmapFactory.Options options = new BitmapFactory.Options(); options.inDither = false; options.inPreferredConfig = Bitmap.Config.RGB_565; Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, _id, Images.Thumbnails.MINI_KIND, options); return bitmap; }
(2)人为创建缩略图要耗费一点时间
/** * 获取视频缩略图 * @param videoPath * @param width * @param height * @param kind * @return */ private Bitmap getVideoThumbnail(String videoPath, int width , int height, int kind){Bitmap bitmap = null;bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, kind);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap; }
2、图片缩略图
/** * * @param context * @param cr * @param Imagepath * @return */ public static Bitmap getImageThumbnail(Context context, ContentResolver cr, String Imagepath) { ContentResolver testcr = context.getContentResolver(); String[] projection = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID, }; String whereClause = MediaStore.Images.Media.DATA + " = '" + Imagepath + "'"; Cursor cursor = testcr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, whereClause, null, null); int _id = 0; String imagePath = ""; if (cursor == null || cursor.getCount() == 0) { return null; } if (cursor.moveToFirst()) { int _idColumn = cursor.getColumnIndex(MediaStore.Images.Media._ID); int _dataColumn = cursor.getColumnIndex(MediaStore.Images.Media.DATA); do { _id = cursor.getInt(_idColumn); imagePath = cursor.getString(_dataColumn); } while (cursor.moveToNext()); } cursor.close(); BitmapFactory.Options options = new BitmapFactory.Options(); options.inDither = false; options.inPreferredConfig = Bitmap.Config.RGB_565; Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr, _id, Images.Thumbnails.MINI_KIND, options); return bitmap; }
更多相关文章
- android 添加视频、图片、录音上传(一)
- 短视频平台搭建Android(安卓)Camera 录制视频,可限制时长,限大小
- 最新android视频地址及android4.2环境地址
- Android使用adb命令对手机进行截屏保存到电脑&SDCard
- Android之使用MediaMetadataRetriever类获取视频第一帧
- 学习Android(一)
- Android中调用系统摄像并且保存到指定位置的一些问题&Uri转文件
- android 根据图片路径获取图片缩略图
- Android轮播图 banner,图片视频混播banner