笔记 HarmonyOS实战开发:ImageAnimator 帧动画组件

打印 上一主题 下一主题

主题 949|帖子 949|积分 2847

        帧动画就是雷同播放影戏一样,一帧一帧的进行播放,相对于属性动画,每一帧,我们都可以进行设置相关属性,且具有停息播放,继承播放的优点。具有事件的实时响应,但在性能上远远不如属性动画,以是假如可以能用属性动画实现的场景,照旧使用属性动画为好。
ImageAnimator不是容器组件,也不需要通报参数,只需要设置属性即可。
  
  1. ImageAnimator()
  2. .属性()
复制代码
常用属性    

  
参数名称参数范例参数形貌
imagesArray设置图片帧信息集合。   说明:   不支持动态更新。
stateAnimationStatus默认为初始状态,用于控制播放状态。
durationnumber单位为毫秒,默认时长为1000ms;  duration为0时,不播放
图片;值的改变只会在下一次循环开始时生效;当images中
任意一帧图片设置了单独的duration后,该属性设置无效。
默认值:  1000 从API version 10开始,该接口支持在ArkTS卡
片中使用。
iterationsnumber默认播放一次,设置为-1时表示无穷次播放。   默认值:  1
revers        boolean设置播放方向
fixedSizeboolean设置图片大小是否固定为组件大小
fillModeFillMode设置当前播放方向下,动画开始前和结束后的状态
   代码演示:

  1. @Entry
  2. @Component
  3. struct ImageAnimatorPage {
  4.   //创建一个动画数组
  5.   images: ImageFrameInfo[] = [
  6.     { src: $r('app.media.sa1') },
  7.     { src: $r('app.media.sa2') },
  8.     { src: $r('app.media.sa3') },
  9.     { src: $r('app.media.sa4') }
  10.   ]
  11.   //创建一个播放控制器
  12.   @State state: AnimationStatus = AnimationStatus.Initial //动画初始状态
  13.   build() {
  14.     Column({space:15}) {
  15.       ImageAnimator()
  16.         .animatorFancy()//公共样式组件
  17.         .images(this.images)//动画数组
  18.         .duration(this.images.length * 1000)//动画播放的时长  时长为:数组的长度乘以1秒
  19.         .state(this.state)//状态为初始状态
  20.         .iterations(-1) //播放次数 当播放次数为-1时,将无限播放
  21.       Row() {
  22.         Button('启动').onClick(() => {
  23.           this.state = AnimationStatus.Running//动画播放状态
  24.         })
  25.         Button('暂停').onClick(() => {
  26.           this.state = AnimationStatus.Paused//动画处于暂停状态
  27.         })
  28.         Button('停止').onClick(() => {
  29.           this.state = AnimationStatus.Stopped//动画处于停止状态
  30.         })
  31.       }
  32.       .width('100%')
  33.       .justifyContent(FlexAlign.SpaceEvenly)
  34.     }
  35.     .height('100%')
  36.     .width('100%')
  37.   }
  38.   //定义一个重用样式
  39.   @Styles
  40.   /*
  41.   @Styles装饰器可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。
  42.   通过@Styles装饰器可以快速定义并复用自定义样式。用于快速定义并复用自定义样式*/
  43.   animatorFancy(){
  44.     .width(300)//宽300
  45.     .aspectRatio(2)//宽高比例 高为150VP
  46.     .padding(10)//内边距10VP
  47.   }
  48. }
复制代码
代码结果展示:



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表