<code
class
=
"hljs"
java=
""
>
package
com.vrinux.thumbnailutilsdemo;
import
android.app.Activity;
import
android.graphics.Bitmap;
import
android.media.ThumbnailUtils;
import
android.os.Bundle;
import
android.os.Environment;
import
android.provider.MediaStore;
import
android.widget.ImageView;
public
class
MainActivity
extends
Activity {
//定义一个ImageView对象imgObj;
private
ImageView imgObj;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取对象imgObj;
imgObj = (ImageView) findViewById(R.id.imgid);
//定义一个视频文件路径;
String filePath =
null
;
//视频文件的名字;
String filename = video.3gp;
//判断SDCard是否挂载;由于Android版本的挂载路径不尽相同,所以建议使用一下的方法判断;
if
(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
//获取SDCard根的路径
String sdPath = Environment.getExternalStorageDirectory().getPath();
//将SDCard根路径和文件名组装得到视频文件的路径;
filePath = sdPath + / + filename;
//调用下面定义的方法,获得指定大小的视频截图;
//最后的参数本人不太清楚是什么意思,只是这么用,其源码并非开源;
Bitmap bitmap = getVidioBitmap(filePath,
400
,
400
,
MediaStore.Images.Thumbnails.MICRO_KIND);
//将获得的位图用imgObj显示;
imgObj.setImageBitmap(bitmap);
}
}
public
Bitmap getVidioBitmap(String filePath,
int
width,
int
height,
int
kind) {
//定義一個Bitmap對象bitmap;
Bitmap bitmap =
null
;
//ThumbnailUtils類的截取的圖片是保持原始比例的,但是本人發現顯示在ImageView控件上有时候有部分沒顯示出來;
//調用ThumbnailUtils類的靜態方法createVideoThumbnail獲取視頻的截圖;
bitmap = ThumbnailUtils.createVideoThumbnail(filePath, kind);
//調用ThumbnailUtils類的靜態方法extractThumbnail將原圖片(即上方截取的圖片)轉化為指定大小;
//最後一個參數的具體含義我也不太清楚,因為是閉源的;
bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
//放回bitmap对象;
return
bitmap;
}
}
</code>
联系客服