VirtualView接入及开发环境搭建

[TOC]

VirtualView接入

sdk接入

  1. 引入aar依赖
compile ('com.alibaba.android:virtualview:1.0.5@aar') {
    transitive = true
}
  1. 在application中初始化,提供全局VafContext及ViewManager
//构建VafContext对象
VafContext vafContext = new VafContext(mContext.getApplicationContext());
//初始化ViewManager
ViewManager viewManager = vafContext.getViewManager();
viewManager.init(mContext.getApplicationContext());
  1. 自定义图片组件并注册,官方demo有picasso的例子。这里以Fresco为例,其他自定义组件也类似,参考自定义基础组件

    这里1014是自定义组件的id,每个组件对应一个id,可覆盖自带组件的id实现自定义基础组件。建议从 1001开始,前 1000 保留给系统使用。

sViewManager.getViewFactory().registerBuilder(1014,new FrescoImage.Builder())
  1. 注册事件,可注册点击、曝光、长按、触摸事件
    事件说明
//点击事件
sVafContext.getEventManager().register(EventManager.TYPE_Click, new ClickProcessorImpl());
//曝光事件
sVafContext.getEventManager().register(EventManager.TYPE_Exposure, new ExposureProcessorImpl());
  1. 加载动态布局二进制文件
//方式1,.out文件路径加载
viewManager.loadBinFileSync(file_path);
//方式2,二进制数组
viewManager.loadBufferSync(byte[])
  1. 页面中设置容器,绑定数据、渲染
//根据xml文件名获取VirtualView,在编译xml时配置的名称
View container = vafContext.getContainerService().getContainer(name, true);
//数据绑定,绑定对应布局的json数据
IContainer iContainer = (IContainer)container;
iContainer.getVirtualView().setVData(data);

xml开发工具

需要工具

编译工具

下载virtualview_tools,通过VirtualView-tools编译XML模板,输出.out文件及文件MD5

  1. 配置组件ID及属性type:compiler-tools/config/config.properties
\\配置viewId,例如自定义FrescoImage的id设为1014,这里id需要与virtualview初始化时FrescoImage注册的id一致,这样才能根据xml中组件id映射到native组件。
VIEW_ID_FrescoImage=1014
\\配置属性类型
layoutMarginTop=Number
  1. 配置需要编译xml文件列表:compiler-tools/config/templatelist.properties
/**
 * xmlFileName需要编译的xml文件名
 * outFileName编译输出文件名,outFileName会编译进二进制文件中,客户端通过outFileName生成对应VirtualView
 * Version xml模板的版本号
 */
xmlFileName=outFileName,Version
  1. 编写xml模板放在compiler-tools/TemplateWorkSpace/template目录
  2. 执行sh buildTemplate.sh脚本编译xml模板,输出.out文件,输出目录:compiler-tools/TemplateWorkSpace/build
out目录:xml模板编译成的.out文件
java目录:xml模板编译成的二进制数组类
sign目录:.out文件的MD5码,供客户端校验用
txt目录:XML 模板编译成二进制数据之后的十六进制字符串形式

界面实时预览工具

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 7,588评论 0 3
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,191评论 4 61
  • 手握相机在街头行走,与不带相机漫步街头会明显不同。只要拿着相机,潜意识中就会搜寻拍摄的目标。如果事先没有计划拍摄的...
    俗然阅读 5,979评论 4 10
  • 03、04队周末约队比赛!本来是普通的比赛,恰好世界杯四强即将全部产生,于是组成四个队进行世界杯模拟赛!法国V比利...
    穆里尼奥宋阅读 1,664评论 0 0
  • 无意中望着窗外,才发现蓝天总是在游荡这不一样的云彩,天空还是那片天空,云朵却总在变幻,也许一批批过客就宛如我们生活...
    矛晓盾阅读 1,300评论 0 10