Android获取照片和视频的缩略图

代码实现

package com.xtm.test.util;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.ThumbnailUtils;

/**
 * Created by TiamMing.Xiong on 2019/3/20.
 */
public class MediaThumbnailUtils {
    /**
     * 获取视频缩略图
     *
     * @param filePath
     * @param kind     could be MINI_KIND or MICRO_KIND
     * @return
     */
    public static Bitmap createVideoThumbnail(String filePath, int kind) {
        return ThumbnailUtils.createVideoThumbnail(filePath, kind);
    }


    /**
     * 根据指定的图像路径和大小来获取缩略图
     *
     * @param imagePath 图像的路径
     * @param width     指定输出图像的宽度
     * @param height    指定输出图像的高度
     * @return 生成的缩略图
     */
    public static Bitmap createImageThumbnail(String imagePath, int width, int height) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(imagePath, options);
        options.inJustDecodeBounds = false;
        int inSampleSize;
        int w = options.outWidth;
        int h = options.outHeight;
        int beWidth = w / width;
        int beHeight = h / height;
        if (beWidth < beHeight) {
            inSampleSize = beWidth;
        } else {
            inSampleSize = beHeight;
        }
        if (inSampleSize <= 0) {
            inSampleSize = 1;
        }
        options.inSampleSize = inSampleSize;
        return ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(imagePath, options), width, height,
                ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
    }

    /**
     * 获取视频的缩略图
     *
     * @param videoPath 视频的路径
     * @param width     指定输出视频缩略图的宽度
     * @param height    指定输出视频缩略图的高度度
     * @param kind      参照MediaStore.Images.Thumbnails类中的常量MINI_KIND和MICRO_KIND。
     *                  其中,MINI_KIND: 512 x 384,MICRO_KIND: 96 x 96
     * @return 指定大小的视频缩略图
     */
    public static Bitmap createVideoThumbnail(String videoPath, int width, int height, int kind) {
        Bitmap bitmap = ThumbnailUtils.extractThumbnail(createVideoThumbnail(videoPath, kind), width, height,
                ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
        return bitmap;
    }

}

猜你喜欢

转载自blog.csdn.net/qq_17441227/article/details/88801324