代码实现
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;
}
}