有奖捉虫:行业应用 & 管理与支持文档专题 HOT

Demo UI 说明

?
?
?

实现方式

操作面板数据是解析一份 JSON 文件获得的,Demo 中的这份文件名称是AvatarTPose_panel.json放在 BeautyDemo/Avatar/ 目录。
?
?
?
Json 结构和 UI 面板对应关系
左侧 item 对应右侧页面一级菜单,clothes 为第一个 icon 选中的内容:
?
?
?
左侧红框 subTabs 对应右侧二级菜单:
?
?
?
左侧 icon 对应的 AvatarData 数据存储在素材下的 resources 文件夹中,右侧展示的是面板的配置数据。两者之间是通过面板数据中的 category 进行关联,SDK 会解析 resources 文件夹中的数据,放入对应的 map 中,map 的 key 是 category 的值,所以在 Demo 中解析完 panel.json 文件后,可通过 SDK 提供的方法获取数据进行关联。可以参考 demo 中的 AvatarResManager 的 getAvatarData 方法,此方法会解析面板文件并和 SDK 返回的属性进行关联。
?
?
?

Demo 重要类说明

路径:BeautyDemo/Avatar/DataSource/AvatarResManager.m

1. 拷贝 Avatar 素材

/**
? copy资源到沙盒,因为有下载某单个素材需求,在mainBundle里面的资源文件无法修改,
? 需要拷贝到沙盒,才可以往资源添加文件
? */
- (void)copyBundleToSanboxIfNeed

2. 获取面板数据

// 获取UI面板数据
- (NSArray *)getPanelData:(AvatarGender)gender

3. 保存捏脸形象数据

// 保存捏脸形象数据
- (BOOL)saveSelectedAvatarConfigs:(AvatarGender)gender image:(NSData *)image

4.获取保存的捏脸形象数据

//获取保存的全身形象数据
- (void)getSavedAvatarConfigs

5. 获取默认的全身形象数据

// 获取默认的全身形象数据
- (NSString *)getDefaultAvatarConfigs:(AvatarGender)gender
?


http://www.vxiaotou.com