Android weex加载gif动图

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

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的坑越来越少!!!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值