Play animated GIFs in Android(3)

在Android里播放GIF动画是个有难度的话题,而且也被很多网友广泛的讨论,在这里我将结合我的开发经验以及获取到的各种资讯做一个总结,这其中主要包含有三个方法播放GIF动画,每个方法都有其优点和缺点。这一系列的每个部分将介绍这些方法。

在上一节,我们介绍了如何通过Android提供的类Movie实现GIF的播放,以及出现花屏的解决方法,详细阅读请移步:Play animated GIFs in Android(2)。

下面我将向大家介绍第三种Android播放GIF动画的方法:使用 WebView

这也许是到目前为止你所知道的最简单的一种播放GIF动画的方法,Android的WebView可以做浏览器可以做的任何事情。而且自从Android 2.2 +以后,所有的Android设备的浏览器都支持GIF动画播放(至少大多数的设备)。

所以,首先我们自定义一个类继承于WebView

1 public class GifWebView extends WebView {

这里我们创建一个构造方法,并接收两个参数,一个是context,以及另一个是GIF图片的路径。然后我们就可以调用loadUrl(path);方法显示动画。

1 public GifWebView(Context context, String path) {
2         super(context);        
3  
4         loadUrl(path);
5     }

到此我们自定义的View就已经完成,接下来我们要做的就像前两个部分的那样,去实现这个自定义的View.

1 GifWebView view = new GifWebView(this, "file:///android_asset/piggy.gif");
2  setContentView(view);

写在最后:

Movie, GifDecoder or WebView?

这三个方法使用哪一个,取决于读则的需求,如果你的应用面向的主要设备要求Android 2.2+,那么上面的这个方法也许更适合你,如果你希望你的应用尽可能多的适用于更多的设备,并且也不用考虑到内存占用的问题,那么你也许会考虑用GifDecoder方法。如果你想支持更多的用户,但又不想去过多考虑Bitmaps内存回收的问题,并且可以确保所有GIF动画可以用Movie类进行播放,那么可以考虑使用这个方法。

你可以从这个地址下载到Demo: http://code.google.com/p/animated-gifs-in-android/.

原文链接:http://www.ithouge.com/play-animated-gif-webview.html

 

 

posted @ 2012-12-01 17:20  Ithouge  阅读(620)  评论(0编辑  收藏  举报