歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android系統詳解之獲取圖片和視頻的縮略圖

Android系統詳解之獲取圖片和視頻的縮略圖

日期:2017/3/1 10:00:12   编辑:Linux編程

從Android 2.2開始系統新增了一個縮略圖ThumbnailUtils類,位於framework的android.media.ThumbnailUtils位置,可以幫助我們從mediaprovider中獲取系統中的視頻或圖片文件的縮略圖,該類提供了三種靜態方法可以直接調用獲取。

1.

static Bitmap createVideoThumbnail(String filePath, int kind) //獲取視頻文件的縮略圖,第一個參數為視頻文件的位置,比如/sdcard/android123.3gp,而第二個參數可以為MINI_KIND或 MICRO_KIND最終和分辨率有關

2.

static Bitmap extractThumbnail(Bitmap source, int width, int height, int options) //直接對Bitmap進行縮略操作,最後一個參數定義為OPTIONS_RECYCLE_INPUT ,來回收資源

3.

static Bitmap extractThumbnail(Bitmap source, int width, int height) // 這個和上面的方法一樣,無options選項

獲取手機裡視頻縮略圖:

public static Bitmap getVideoThumbnail(ContentResolver cr, Uri uri) {
Bitmap bitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither = false;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Cursor cursor = cr.query(uri,new String[] { MediaStore.Video.Media._ID }, null, null, null);

if (cursor == null || cursor.getCount() == 0) {
return null;
}
cursor.moveToFirst();
String videoId = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media._ID)); //image id in image table.s

if (videoId == null) {
return null;
}
cursor.close();
long videoIdLong = Long.parseLong(videoId);
bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, videoIdLong,Images.Thumbnails.MICRO_KIND, options);

return bitmap;
}

Copyright © Linux教程網 All Rights Reserved