您的位置:首页 > 移动开发 > Android开发

android 获取视频,图片缩略图的具体实现

2016-06-14 11:52 731 查看
1、获取视频缩略图有两个方法(1)通过内容提供器来获取(2)人为创建缩略图

(1)缺点就是必须更新媒体库才能看到最新的视频的缩略图

[java]

复制代码 代码如下:

/**

     * @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; 

    }

/**

     * @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)人为创建缩略图要耗费一点时间

[java]
复制代码 代码如下:

/**

    * 获取视频缩略图

    * @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;

   }

 /**

     * 获取视频缩略图

     * @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、图片缩略图

[java]

复制代码 代码如下:

/**

    * 

    * @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; 

   }

 /**

     *

     * @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;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片