当前位置: 首页 > news >正文

HarmonyOS 6 ArkUI 粒子动画(Particle)使用文档

文章目录

    • Particle 粒子动画核心
      • 1. 组件作用
      • 2. 核心适用场景
      • 3. 官方标准核心结构
    • 示例代码逐模块解析
      • 1 页面布局结构
      • 2 粒子发射器配置(emitter)
        • 对应功能:
      • 3 颜色动画配置(color)
        • 对应功能:
      • 4 透明度动画配置(opacity)
        • 对应功能:
      • 5 缩放动画配置(scale)
        • 对应功能:
      • 6 加速度配置(acceleration)
        • 对应功能:
    • 运行效果
    • 完整代码
    • 总结

Particle 粒子动画核心

1. 组件作用

Particle是 ArkUI 提供的高性能粒子动画组件,用于快速实现复杂的粒子特效。通过配置发射器、粒子数量、生命周期、颜色、透明度、缩放、速度、加速度等参数,实现高度自定义的视觉效果。

2. 核心适用场景

  • 烟花、火焰、烟雾、爆炸特效
  • APP 启动页背景动效
  • 点赞、金币飘落等交互动效
  • 自定义加载动画

3. 官方标准核心结构

Particle({particles:[ParticleDescription]})
  • particles: 粒子描述数组,支持多组粒子效果
  • 内部包含emitter(发射器)、color(颜色)、opacity(透明度)、scale(缩放)、acceleration(加速度)等模块

示例代码逐模块解析

1 页面布局结构

Stack(){Text().width(300).height(300).backgroundColor(Color.Black)// 黑色背景Particle({...}).width(300).height(300)// 粒子容器}.width('100%').height('100%').align(Alignment.Center)
  • 使用Stack容器居中展示粒子效果
  • 黑色背景提升粒子视觉对比度
  • 粒子区域固定为300x300

2 粒子发射器配置(emitter)

emitter:{particle:{type:ParticleType.POINT,// 粒子类型:圆点config:{radius:10},// 圆点半径count:500,// 最大粒子总数lifetime:10000,// 生命周期 10 秒lifetimeRange:100// 生命周期随机范围},emitRate:10,// 每秒发射 10 个粒子position:[0,0],// 发射器位置shape:ParticleEmitterShape.RECTANGLE// 发射器形状:矩形}
对应功能:
  1. 粒子类型POINT圆点粒子
  2. 数量控制:最多同时存在 500 个粒子
  3. 发射速度:每秒生成 10 个新粒子
  4. 生命周期:单个粒子存活 10 秒
  5. 发射区域:矩形区域发射

3 颜色动画配置(color)

color:{range:[Color.Red,Color.Yellow],// 初始颜色范围distributionType:DistributionType.GAUSSIAN,// 高斯分布updater:{type:ParticleUpdater.CURVE,// 曲线渐变config:[{from:White,to:Pink,0-3000ms},{from:Pink,to:Orange,3000-5000ms},{from:Orange,to:Pink,5000-8000ms}]}}
对应功能:
  • 粒子初始颜色在红 → 黄之间随机
  • 按时间轴三段式渐变:白 → 粉 → 橙 → 粉
  • 使用曲线动画实现平滑过渡

4 透明度动画配置(opacity)

opacity:{range:[0.0,1.0],// 初始透明度随机updater:{type:ParticleUpdater.CURVE,config:[{from:0.01.0,0-3000ms},// 淡入{from:1.00.0,5000-10000ms}// 淡出]}}
对应功能:
  • 粒子先淡入、后淡出
  • 符合自然视觉动效

5 缩放动画配置(scale)

scale:{range:[0.0,0.0],updater:{type:ParticleUpdater.CURVE,config:[{from:0.00.5,0-3000ms}// 从小到大放大]}}
对应功能:
  • 粒子从无到有逐渐放大
  • 增强视觉冲击感

6 加速度配置(acceleration)

acceleration:{speed:{range:[3,9],updater:{type:ParticleUpdater.RANDOM,config:[1,20]}},angle:{range:[90,90]}// 固定向上运动}
对应功能:
  • 粒子固定向上(90°)加速漂浮
  • 速度随机变化,模拟自然飘动效果

运行效果

  1. 黑色背景上生成红色/黄色圆点粒子
  2. 粒子从无到有淡入、逐渐放大
  3. 颜色按时间渐变:白 → 粉 → 橙 → 粉
  4. 粒子向上加速漂浮
  5. 后期逐渐淡出消失
  6. 持续发射、无限循环动效

完整代码

@Entry@Componentstruct ParticleExample{build(){Stack(){Text().width(300).height(300).backgroundColor(Color.Black)Particle({particles:[{emitter:{particle:{type:ParticleType.POINT,// 粒子类型config:{radius:10// 圆点半径},count:500,// 粒子总数lifetime:10000,// 粒子生命周期,单位mslifetimeRange:100// 粒子生命周期取值范围,单位ms},emitRate:10,// 每秒发射粒子数position:[0,0],shape:ParticleEmitterShape.RECTANGLE// 发射器形状},color:{range:[Color.Red,Color.Yellow],// 初始颜色范围distributionType:DistributionType.GAUSSIAN,// 初始颜色随机值分布updater:{type:ParticleUpdater.CURVE,// 变化方式为曲线变化config:[{from:Color.White,// 变化起始值to:Color.Pink,// 变化终点值startMillis:0,// 开始时间endMillis:3000,// 结束时间curve:Curve.EaseIn// 变化曲线},{from:Color.Pink,to:Color.Orange,startMillis:3000,endMillis:5000,curve:Curve.EaseIn},{from:Color.Orange,to:Color.Pink,startMillis:5000,endMillis:8000,curve:Curve.EaseIn},]}},opacity:{range:[0.0,1.0],// 粒子透明度的初始值从【0.0到1.0】随机产生updater:{type:ParticleUpdater.CURVE,config:[{from:0.0,to:1.0,startMillis:0,endMillis:3000,curve:Curve.EaseIn},{from:1.0,to:0.0,startMillis:5000,endMillis:10000,curve:Curve.EaseIn}]}},scale:{range:[0.0,0.0],updater:{type:ParticleUpdater.CURVE,config:[{from:0.0,to:0.5,startMillis:0,endMillis:3000,curve:Curve.EaseIn}]}},acceleration:{// 加速度的配置,从大小和方向两个维度变化,speed表示加速度大小,angle表示加速度方向speed:{range:[3,9],updater:{type:ParticleUpdater.RANDOM,// Speed的变化方式是随机变化config:[1,20]}},angle:{range:[90,90]}}}]}).width(300).height(300)}.width('100%').height('100%').align(Alignment.Center)}}

运行效果如图:


总结

  1. Particle 必须设置宽高
    不设置宽高会导致粒子无法显示

  2. 粒子数量合理设置
    count过大会导致性能下降

  3. updater 配置顺序
    按时间先后顺序排列,实现连续动画

  4. 加速度方向
    angle: 90表示垂直向上

  5. 性能优化
    背景建议使用纯色,提升渲染效率

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

http://www.jsqmd.com/news/783568/

相关文章:

  • 35岁转行AI,社恐杨老师教你如何在大模型时代找到自己的坐标(收藏版)
  • 从入门到精通:彻底讲懂Agent的Skill,不做“炫技式浪费”
  • GraphGen:从科学文本自动构建知识图谱的实战指南
  • 2026年德州沥青加温设备、沥青储存罐与筑路设备源头厂家完全采购指南 - 企业名录优选推荐
  • 语音AI测试:构建科学评估体系与工程实践
  • OnmyojiAutoScript:阴阳师手游智能自动化脚本终极指南
  • 如何搭建个人游戏云:Sunshine串流服务器完全指南
  • 别再只写TodoList了!用HTML+CSS+JS做个王者荣耀抽奖Demo,放进你的前端作品集
  • CANN/ops-nn Hardswish反向传播API
  • CANN/pypto gt大于比较运算
  • 华为CANN/ops-math反射填充3D梯度算子
  • 从PSPICE到Cadence 17.2:一个硬件工程师的EDA工具升级心路与避坑实录
  • HarmonyOS 6 ArkUI 粒子动画(Particle)干扰场特性使用文档
  • 从入门到进阶:大模型学习的正确打开方式
  • AI智能体竞技场:零代码可视化多智能体系统实战
  • 动态域名解析工具diny:基于Cloudflare API的轻量级DDNS解决方案
  • 日常开发小记录
  • AirPodsDesktop深度解析:打破生态壁垒的Windows音频革命
  • VS Code 又官宣了一个 Agent 新玩具!有点东西!
  • 论文阅读:MMA: Multi-Modal Adapter for Vision-Language Models
  • 如何在Java面试中脱颖而出?掌握这些高级技巧就够了
  • 佛山市添明再生资源:南海区口碑好的钢渣回收厂家 - LYL仔仔
  • ReVa:基于MCP协议的AI逆向工程助手,提升Ghidra分析效率
  • 陕西中坤羽衡环保:新城乙烯基耐高温涂料批发公司有哪些 - LYL仔仔
  • 上饶黄金回收怎么选?3 区 8 县 1 市全覆盖,6 大品牌上门回收 + 实时金价 + 当场结款 - 金掌柜黄金回收
  • 2026年易碎品柔爪抓取方案主流款式与适配场景 - 品牌2026
  • AI+高通量实验驱动电池级碳酸锂工艺优化:从数据到决策的闭环实践
  • 2026年道路筑路设备采购完全指南:德州霖垚与五大品牌深度横评 - 企业名录优选推荐
  • 如何彻底解决显卡驱动冲突问题:Display Driver Uninstaller深度解析与实战指南
  • CCAA考试通过率是多少? - 众智商学院官方