您的位置:首页 > 移动开发 > Android开发

android 获取视频,图片缩略图

2014-11-20 09:40 447 查看
1、获取视频缩略图有两个方法

(1)通过内容提供器来获取

(2)人为创建缩略图

(1)缺点就是必须更新媒体库才能看到最新的视频的缩略图

获取的方法

/**

* @param context

* @param cr

* @param Videopath

* @return

*/

public static Bitmap getVideoThumbnail(Context context, ContentResolver cr, String Videopath) {

ContentResolver testcr = context.getContentResolver();

String[] projection = { MediaStore.Video.Media.DATA, MediaStore.Video.Media._ID, };

String whereClause = MediaStore.Video.Media.DATA + " = '" + Videopath + "'";

Cursor cursor = testcr.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, whereClause,

null, null);

int _id = 0;

String videoPath = "";

if (cursor == null || cursor.getCount() == 0) {

return null;

}

if (cursor.moveToFirst()) {

int _idColumn = cursor.getColumnIndex(MediaStore.Video.Media._ID);

int _dataColumn = cursor.getColumnIndex(MediaStore.Video.Media.DATA);

do {

_id = cursor.getInt(_idColumn);

videoPath = cursor.getString(_dataColumn);

} while (cursor.moveToNext());

}

cursor.close();

BitmapFactory.Options options = new BitmapFactory.Options();

options.inDither = false;

options.inPreferredConfig = Bitmap.Config.RGB_565;

Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, _id, Images.Thumbnails.MINI_KIND,

options);

return bitmap;

}

(2)人为创建缩略图要耗费一点时间

[java] view plaincopy

/**

* 获取视频缩略图

* @param videoPath

* @param width

* @param height

* @param kind

* @return

*/

private Bitmap getVideoThumbnail(String videoPath, int width , int height, int kind){

Bitmap bitmap = null;

bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, kind);

bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

return bitmap;

}

2、图片缩略图

[java] view plaincopy

/**

*

* @param context

* @param cr

* @param Imagepath

* @return

*/

public static Bitmap getImageThumbnail(Context context, ContentResolver cr, String Imagepath) {

ContentResolver testcr = context.getContentResolver();

String[] projection = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID, };

String whereClause = MediaStore.Images.Media.DATA + " = '" + Imagepath + "'";

Cursor cursor = testcr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, whereClause,

null, null);

int _id = 0;

String imagePath = "";

if (cursor == null || cursor.getCount() == 0) {

return null;

}

if (cursor.moveToFirst()) {

int _idColumn = cursor.getColumnIndex(MediaStore.Images.Media._ID);

int _dataColumn = cursor.getColumnIndex(MediaStore.Images.Media.DATA);

do {

_id = cursor.getInt(_idColumn);

imagePath = cursor.getString(_dataColumn);

} while (cursor.moveToNext());

}

cursor.close();

BitmapFactory.Options options = new BitmapFactory.Options();

options.inDither = false;

options.inPreferredConfig = Bitmap.Config.RGB_565;

Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr, _id, Images.Thumbnails.MINI_KIND,

options);

return bitmap;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: