weex加载gif动图,在android上面是不会显示出来的,只能显示出来空白页面,官方文档也给说了解决方法,一种就是利用加载图片的适配器,在适配器里面自己做判断,一种就是你自定义一个Component来实现这个加载!!!
这个Component可以在weex的官网上面有个android的weex扩展,这个里面就有详细的介绍!
这里需要注意的是ios可以直接加载!!!

好了,废话不多说源码才是关键
首先你需要在这个加上:

你们不用管那些花里胡哨的,就只需要在build里面加上mavenCentral()就行,注意不是在app下面的build,还有需要注意的就是这行代码不要加错位置了!!!

然后在同一个build里面还是加上那行代码,注意位置!!!!
接下来你就需要在app下面的build里面加上gif的依赖
compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.12'
然后在同步一下,这个时候同步应该是不会报错的,如果报错,抱歉,我也不知道了,因为暂时没遇到过!!!

如果同步成功了,你就接着往下看!
你需要新建一个类,然后去继承Component这个,实现加载动图,
当然你也可以在加载图片的适配器里面做操作,但是这种我没有用过,所以就不写了,有机会我也会尝试一下的!
/**
* Created by dell on 2018/6/25.
* Date:2018/6/25
*/
import android.content.Context;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.dom.WXDomObject;
import com.taobao.weex.ui.component.WXComponent;
import com.taobao.weex.ui.component.WXComponentProp;
import com.taobao.weex.ui.component.WXVContainer;
import pl.droidsonroids.gif.GifDrawable;
import pl.droidsonroids.gif.GifImageView;
/**
* Created by Administrator on 2018/6/25.
*/
public class GifImage extends WXComponent<GifImageView> {
GifImageView gifview;
Context context;
//这个建议自己继承WXComponent<GifImageView>这个后重写下
public GifImage(WXSDKInstance instance, WXDomObject dom, WXVContainer parent, boolean isLazy) {
super(instance, dom, parent, isLazy);
}
@Override
protected GifImageView initComponentHostView(Context context) {
gifview = new GifImageView(context);
this.context = context;
return gifview;
}
@WXComponentProp(name = "src")//该注解,则为weex中调用的方法名
public void setSrc(String src){
try{
GifDrawable gifFromAssets = new GifDrawable( context.getAssets(), src);
gifview.setImageDrawable(gifFromAssets);
}catch (Exception e){
e.printStackTrace();
}
}
}
这个类创建好了,你需要去注册一下,

WXSDKEngine.registerComponent("gifimage", GifImage.class, false);
这个EmasInit这个类是阿里的官方文档里面会提供的,然后你就直接复制过来用,这里注意的是,你注册的位置要写对,
还有就是你需要将这个类在
Application里面去初始化的

这个整体完事了,你需要将你想要加载的动图放在assets下面

这样的话,我们客户端这个就算是完事了,就等着weex调用就ok了,
weex调用的话,也是特别简单,

这个是我们当时注册的时候写的,那个type是你和weex商量好的,完了weex调用的话就直接<gifimage></gifimage>使用就行,
当然你可以随便起个名字,反正你开心就好
好了,这样的可以实现android加载动图了,希望以后遇到weex的坑越来越少!!!

本文介绍了如何在Android上使用Weex加载GIF动图,包括在build.gradle中添加依赖,创建自定义组件GifImage继承自WXComponent,并实现加载动图的方法,最后在Weex中调用该组件完成动图展示。

2148

被折叠的 条评论
为什么被折叠?



