国际惯例 效果图
最近需求中有一个显示gif。以前都是用的帧动画,经过分析。已知方法有以下常见几种
1.android.graphics.Movie
2.第三方加载图片(由于我那个项目中的imageloader并不支持)
前两者网上比较多。在查看多数资料后发现webview才是不错的选择。
Android原生不支持Gif图的动态展示?并不是!
webview就是为了支持web元素的。前两种存在可能性的性能问题。
将gif封装成html即可 鉴于一般是悬浮gif 所以背景设置为0.xml中测试设置无效
所以直接按如下步骤即可。。、
xml直接丢一个webview 就不附上代码了
String gifFilePath = "file:///android_asset/test.gif";//首先将一张gif格式的动图放置在assets中
webview_gif.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webview_gif.setBackgroundColor(0); // 设置背景色
String data = "<HTML><Div align=\"center\" margin=\"0px\"><IMG src=\"" + gifFilePath + "\" margin=\"0px\"/></Div>";//设置图片位于webview的中间位置
webview_gif.loadDataWithBaseURL(gifFilePath, data, "text/html", "utf-8", null);
其他需求
如果你漂浮的gif下面还有点击事件 那么 你需要简单处理下 用GifView 代码上边的webview
/**
* Created by Rex on 2016/12/12.
*/
public class GifView extends WebView{
public GifView(Context context) {
super(context);
}
public GifView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public GifView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return false;
}
}