我希望从sdcard中存储的视频ID中获取视频缩略图。实际上我已经通过使用位图获取缩略图,但它在获取缩略图时略微挂断了主线程。我想要的程序,我可以获取图像,并将其首先保存在缓存中,以便我的主线程不会挂起,最后它将顺利显示.......... 这是位图程序
ContentResolver crThumb = _context.getContentResolver();
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb,_videoList.get(position).getID(),MediaStore.Video.Thumbnails.MICRO_KIND,null);
holder.thumbnail.setImageBitmap(curThumb);
答案 0 :(得分:0)
直接从视频中获取缩略图需要时间,因此为了获取缩略图,您可以使用asynctask来读取缩略图,一旦获得缩略图就可以将其设置为您的imageview,`public class ThumbnailFetcher extends AsyncTask {
String mVideoPath;
ThumbnailManagerCallback mCallback;
public interface ThumbnailManagerCallback {
public void onThumbnailReceived(Bitmap thumnail, String path);
}
public ThumbnailFetcher(ThumbnailManagerCallback callback){
mCallback = callback;
}
@Override
protected Bitmap doInBackground(String... param) {
// TODO Auto-generated method stub
mVideoPath = param[0];
try{
return ThumbnailUtils.createVideoThumbnail(param[0],
Thumbnails.MINI_KIND);
}catch(Exception e)
{
return null;
}
}
@Override
protected void onPostExecute(Bitmap thumbnail) {
if(thumbnail != null)
mCallback.onThumbnailReceived(thumbnail, mVideoPath);
}`
回调可以是你的适配器。