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手機上的圖片和影片縮圖