android 获取视频和图片的缩略图
1 在显示视频图片列表时,发送彩信时,制作幻灯片时都需要显示视频或图片的缩略图,显示代码如下:
//import
import android.content.ContentResolver;
import android.content.ContentUris;
import android.graphics.Bitmap;
import android.provider.MediaStore.Video;
import android.widget.ImageView;
//ImageView控件
private ImageView mImagePreview;
//.............................
//初始化ImageView
mImagePreview = (ImageView) findViewById(R.id.image_preview);
//video为视频文件对应的uri
long id = ContentUris.parseId(video);
ContentResolver mContentResolver = mContext.getContentResolver();
//缩略图类型:MINI_KIND FULL_SCREEN_KIND MICRO_KIND
Bitmap miniThumb = Video.Thumbnails.getThumbnail(mContentResolver, id,
Video.Thumbnails.MINI_KIND, null);
//填充图片
mImagePreview.setImageBitmap(miniThumb);
//...............................
或者使用
Bitmap bitmap = VideoAttachmentView.createVideoThumbnail(mContext,video); 来获取图片
2 在android.provider.MediaStore中包含对图片和视频的各种处理类,其中 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails提供了图片和视频生成缩略图的方法。
3 图片和视频的索引及其与对应缩略图的对应关系在 /sdcard/data/data/com.android.providers.media/databases中的db文件中,
图片对应表images和thumbnails
images
_id 图片id
_data 图片路径
thumbnails
_id 缩略图id
_data 缩略图存储位置
image_id 对应原图id
视频对应表images和thumbnails
video
_id 视频id
_data 视频路径
videothumbnails
_id 视频缩略图id
_data 视频缩略图存储位置
image_id 对应视频id
4 以获取视频的缩略图为例,具体步骤如下:
1 获取视频的uri
2 转换为String,得到视频id
3 去videothumbnails表中找到视频缩略图路径
4 根据路径得到图片
5 其他可参考:获取Android手机上的图片和视频缩略图