视频app大多是需要有一张相关视频的图片做封面展示的。下面是可以直接从视频的url取到视频的第一帧图片的方法:
Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(context,url //url的参数 , MediaStore.Video.Thumbnails.MINI_KIND);
这样取到的是一个bitmap的对象,可以直接将图片的view对象设置进去。
不过这个方法只适用于放在单页中,如果是做list的话是很卡的,原因是bitmap在取到图片后市需要占用很大内存的,有人说那一个页面只有一两张图片也卡啊,那是因为在截取视频图片时候需要解析视频,这一步很耗内存的,下面给出的代码是很容易解决使用list展示图片内存消耗的问题的:
在activity中:
mVideoFrameImageLoader = new VideoFrameImageLoader(getActivity(), listView,list); //第三个参数为你的视频地址,走完这里后边跟上setAdapter就ok
在apapter的getview中:
if(convertView==null){ if (!LibsChecker.checkVitamioLibs(context)) return null; convertView= LayoutInflater.from(context).inflate(R.layout.video_item,null); //初始化显示数据 mVideoFrameImageLoader.initList(); viewHolder=new ViewHolder(convertView); convertView.setTag(viewHolder); }else { viewHolder= (ViewHolder) convertView.getTag(); }
Bitmap bitmap=mVideoFrameImageLoader.showCacheBitmap(VideoFrameImageLoader.formatVideoUrl(mImageUrl));//里面的参数是视频地址 viewHolder.pic.setImageBitmap(bitmap);就这几行代码就搞定了,其中的两个类给给大家下载的地址(完整的代码,直接复制就能用)。
下载地址:http://download.csdn.net/detail/qq_34698126/9659787