当前位置:   article > 正文

鸿蒙开发之帧动画ImageAnimator

鸿蒙开发之帧动画ImageAnimator

鸿蒙帧动画需要借助组件ImageAnimator。使用的时候想要让动画动起来需要设置state为AnimationStatus.Running

  1. @Entry
  2. @Component
  3. struct OfficialImageAnimatorPage {
  4. build() {
  5. Column() {
  6. ImageAnimator()
  7. //动画数组
  8. .images([
  9. {src:$r('app.media.icon')},
  10. {src:$rawfile('111.png')},
  11. {src:$rawfile('222.png')},
  12. {src:$rawfile('333.png')},
  13. ])
  14. //动画时长
  15. .duration(2000)
  16. .margin({top:30})
  17. .backgroundColor(Color.Green)
  18. //开始
  19. .state(AnimationStatus.Running)
  20. //正序还是倒序
  21. .reverse(false)
  22. .fillMode(FillMode.Forwards)
  23. //重复次数,-1为无限
  24. .iterations(-1)
  25. .width(340)
  26. .height(240)
  27. //动画开始回调函数
  28. .onStart(() => {
  29. console.info(' ImageAnimator onStart')
  30. })
  31. .onPause(() => {
  32. console.info('ImageAnimator onPause')
  33. })
  34. .onRepeat(() => {
  35. console.info('ImageAnimator onRepeat')
  36. })
  37. .onCancel(() => {
  38. console.info('ImageAnimator onCancel')
  39. })
  40. .onFinish(() => {
  41. console.info('ImageAnimator onFinish')
  42. })
  43. }
  44. .width('100%')
  45. .height('100%')
  46. }
  47. }

如果,帧动画的图片大小不一样,并且间隔时间也不同。就需要设置参数fixedSize(false)。但是,需要注意的是,设置fixedSize为false后,需要设置每个图片的大小,当然也可以搭配上动画时长,如下

  1. @Entry
  2. @Component
  3. struct OfficialImageAnimatorPage {
  4. build() {
  5. Column() {
  6. ImageAnimator()
  7. //动画数组
  8. .images([
  9. {src:$r('app.media.icon'),
  10. width:100,
  11. height:100,
  12. top:40,
  13. left:40,
  14. duration:1000},
  15. {src:$rawfile('111.png'),
  16. width:200,
  17. height:200,
  18. top:30,
  19. left:50,
  20. duration:200},
  21. {src:$rawfile('222.png'),
  22. width:300,
  23. height:200,
  24. top:10,
  25. left:50,
  26. duration:500},
  27. {src:$rawfile('333.png'),
  28. width:100,
  29. height:100,
  30. top:10,
  31. left:150,
  32. duration:300},
  33. ])
  34. //动画时长
  35. .duration(2000)
  36. .margin({top:30})
  37. .backgroundColor(Color.Green)
  38. //开始
  39. .state(AnimationStatus.Running)
  40. //正序还是倒序
  41. .reverse(false)
  42. .fillMode(FillMode.Forwards)
  43. //图片自己设置宽高
  44. .fixedSize(false)
  45. //重复次数,-1为无限
  46. .iterations(-1)
  47. .width(340)
  48. .height(240)
  49. //动画开始回调函数
  50. .onStart(() => {
  51. console.info(' ImageAnimator onStart')
  52. })
  53. .onPause(() => {
  54. console.info('ImageAnimator onPause')
  55. })
  56. .onRepeat(() => {
  57. console.info('ImageAnimator onRepeat')
  58. })
  59. .onCancel(() => {
  60. console.info('ImageAnimator onCancel')
  61. })
  62. .onFinish(() => {
  63. console.info('ImageAnimator onFinish')
  64. })
  65. }
  66. .width('100%')
  67. .height('100%')
  68. }
  69. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/252059
推荐阅读
相关标签
  

闽ICP备14008679号