扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > 安卓端 SDK > 标准模板接入 > 贴纸功能

贴纸功能

更新时间 : 2021-11-09 17:46:29

SXStickerManager

贴纸管理类,template commit之后可以获取,用来增加删除和修改贴纸。
贴纸的坐标以模板左上角为原点,是模板实际宽高的坐标系,与预览SurfaceView上的坐标不同,使用手势等操作时需要根据scale转换

预览暂停时修改贴纸内容后要自动刷新画面需要提前调用SXStickerManager#setPlayer方法传入player

添加贴纸

使用SXStickerManager#addSticker方法,传入贴纸资源包解压后的路径,返回贴纸的ID,之后对贴纸的所有操作都需传入贴纸ID

获取置顶位置贴纸 SXStickerManager#getStickerAtPoint(float x, float y); (x, y)为模板中的坐标
获取贴纸边框顶点坐标数组 getStickerBoundingBox 返回float[8],是贴纸坐标,在界面上显示时需根据surface的scale进行转换,详见demo
删除贴纸 removeSticker(String stickerId);

修改贴纸内容

贴纸可修改内容暂时支持Meida类型(图片,视频)和Text类型(实际为画成图片后传入路径),通过config.json解析,可参考标准模板的解析,替换素材的 index 是这个素材在可替换素材assets中的排序。
SXStickerManager#replaceSource(String stickerId, int index, String sourcePath);

Text类型修改需要使用SXTextCanvas画成图片后调用上面方法的重载函数,传入图片路径,最后一个参数isMedia传false,参考demo

修改贴纸缩放,旋转和位移变换

变换分为对贴纸本身的操作和对指定素材的操作

首页 > 安卓端 SDK > 标准模板接入 > 贴纸功能
贴纸功能
更新时间 : 2021-11-09 17:46:29
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

SXStickerManager

贴纸管理类,template commit之后可以获取,用来增加删除和修改贴纸。
贴纸的坐标以模板左上角为原点,是模板实际宽高的坐标系,与预览SurfaceView上的坐标不同,使用手势等操作时需要根据scale转换

预览暂停时修改贴纸内容后要自动刷新画面需要提前调用SXStickerManager#setPlayer方法传入player

添加贴纸

使用SXStickerManager#addSticker方法,传入贴纸资源包解压后的路径,返回贴纸的ID,之后对贴纸的所有操作都需传入贴纸ID

获取置顶位置贴纸 SXStickerManager#getStickerAtPoint(float x, float y); (x, y)为模板中的坐标
获取贴纸边框顶点坐标数组 getStickerBoundingBox 返回float[8],是贴纸坐标,在界面上显示时需根据surface的scale进行转换,详见demo
删除贴纸 removeSticker(String stickerId);

修改贴纸内容

贴纸可修改内容暂时支持Meida类型(图片,视频)和Text类型(实际为画成图片后传入路径),通过config.json解析,可参考标准模板的解析,替换素材的 index 是这个素材在可替换素材assets中的排序。
SXStickerManager#replaceSource(String stickerId, int index, String sourcePath);

Text类型修改需要使用SXTextCanvas画成图片后调用上面方法的重载函数,传入图片路径,最后一个参数isMedia传false,参考demo

修改贴纸缩放,旋转和位移变换

变换分为对贴纸本身的操作和对指定素材的操作

  • 贴纸变换
    setStickerPosition 设置贴纸位置
    setStickerScale 设置贴纸缩放
    setStickerRotation 设置贴纸旋转
    (以上三个方法有对应的get方法)
    stickerTranslate 使贴纸位移 x, y
    stickerRotate 使贴纸以参数(px, py)为中心旋转一个角度
    stickerScale 使贴纸以(px,py)为中心x轴缩放scaleX倍,y轴缩放scale倍

  • 素材变换需传入素材的索引,文字类型不支持变换
    sourceTranslate
    sourceScale
    sourceRotate