-1

我想顺利地从存储在 sdcard 中的视频 ID 中获取视频缩略图。实际上我已经通过使用位图获得了缩略图,但是在获得缩略图时它稍微挂断了主线程。我想要我可以获取图像并将其首先保存在缓存中的程序,这样我的主线程就不会挂起,最后它会顺利显示......。这是位图程序

ContentResolver crThumb = _context.getContentResolver();

位图 curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb, _videoList.get(position).getID(), MediaStore.Video.Thumbnails.MICRO_KIND, null);

holder.thumbnail.setImageBitmap(curThumb);

4

1 回答 1

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);
}`

回调可以是您的适配器。

于 2015-03-17T08:02:50.050 回答