Glide 入门到精通之五——显示Gif和 Video

                       

参考:http://mrfu.me/2016/02/27/Glide_Displaying_Gifs_&_Videos/

显示 Gif

有很多图片加载库来去加载和显示图片。能支持 Gif 有一些特别也是非常有帮助的,如果在你的 App 需要的话。Glide 实现 Gif 是如此的特别和令人惊讶,因为它是如此的简单。如果你想显示一个 Gif,你可以只使用和过去相同的调用方式就可以了:

String gifUrl = "http://i.kinja-img.com/gawker-media/image/upload/s--B7tUiM5l--/gf2r69yorbdesguga10i.gif";Glide      .with( context )    .load( gifUrl )    .into( imageViewGif );
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

就这样!这将在 ImageView 中显示 Gif 并自动开始播放它。另外一个关于 Glide 的伟大的事情是你仍然可以使用你的标准去调用处理这个 Gif:

Glide      .with( context )    .load( gifUrl )    .placeholder( R.drawable.cupcake )    .error( R.drawable.full_cake )    .into( imageViewGif );
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Gif 检查

上面的代码有一个潜在的问题是,如果提供的来源不是一个 Gif,可能只是一个常规图片,这就没有办法显示这个问题。Glide 接受 Gif 或者图片作为 load() 参数。如果你期望这个 URL 是一个 Gif,Glide 不会自动检查是否是 Gif。因此他们引入了一个额外的防区强制 Glide变成一个 Gif asGif():

Glide      .with( context )    .load( gifUrl )    .asGif()    .error( R.drawable.full_cake )    .into( imageViewGif );
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果 gifUrl 是一个 git,这没什么变化。
如果这个 gifUrl 不是一个 Gif,Glide 将会把这个 load 当成失败处理。这样做的的好处是,.error() 回调被调用并且错误占位符被显示,即使 gifUrl 是一个完美的图片(但不是一个 Gif)。

Gif 转为 Bitmap

如果你的 App 显示一个位置的网络 URL 列表,它可能遇到常规的图片或者 Gif。如果你仅仅想要显示 Gif 的第一帧,你可以调用 asBitmap() 去保证其作为一个常规的图片显示,即使这个 URL 是一个 Gif。

Glide      .with( context )    .load( gifUrl )    .asBitmap()    .into( imageViewGifAsBitmap );
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

这让你用 Glide 显示所有已知的 url 显示为图片的形式。这很简单,试一试!

显示本地视频

现在来谈谈视频。Glide 还能显示视频!只要他们是存储在手机上的。让我们假设你通过让用户选择一个视频后得到了一个文件路径:

String filePath = "/storage/emulated/0/Pictures/example_video.mp4";Glide      .with( context )    .load( Uri.fromFile( new File( filePath ) ) )    .into( imageViewGifAsBitmap );
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

这里需要注意的是,这仅仅对于本地视频起作用。如果没有存储在该设备上的视频(如一个网络 URL 的视频),它是不工作的!如果你想显示视频从网络 URL,去看看 VideoView

Outlook

读完这篇博客,你应该能像使用图片一样使用 Gif 和本地视频了。Glide 与 Gif 的协作是非常顺滑和方便的。下一篇,我们会为你介绍 Glide 的缓存系统。

 

关注我的公众号,轻松了解和学习更多技术
  这里写图片描述

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/qq_43667831/article/details/87701489