在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