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

HarmonyOS开发5.0【骨架屏】 app界面制作

实现原理

1.定义组件和状态变量:

使用 @Entry 和 @Component 装饰器定义了一个名为 IvSkeleton 的组件。

定义了一个状态变量 translageX,初始值为 -100%,用于控制闪电效果的位置。

定义了两个数值变量 widthValue 和 heightValue,分别设置为 100,用于定义组件的宽度和高度。

2.构建组件:

在 build() 方法中,使用 Stack() 创建一个堆叠布局容器。

在堆叠容器中,首先创建一个背景效果:

使用 Text() 组件创建一个文本元素。

设置文本的高度和宽度分别为 heightValue 和 widthValue。

设置背景颜色为半透明黑色 (rgba(0,0,0,0.1)).

3.闪电效果:

再次使用 Text() 创建一个文本元素,用于实现闪电效果。

设置文本的高度和宽度分别为 heightValue 和 widthValue。

使用 .translate() 方法将闪电效果的位置设置为 translageX。

在组件加载后 (onAppear()),将 translageX 的值从 -100% 改变为 100%,从而移动闪电效果的位置。

4.添加动画效果:

设置动画持续时间为 1500 毫秒(1.5 秒)。

设置迭代次数为 -1,表示无限循环。

使用 .linearGradient() 方法创建一个线性渐变效果,实现闪电效果:

设置角度为 90 度。

设置颜色从透明到白色再到透明的渐变。

通过以上步骤,实现了以下功能:

初始状态下,闪电效果位于屏幕左侧(-100%)。

组件加载后,闪电效果移动到屏幕右侧(100%)。

闪电效果会无限循环地在屏幕上移动,形成闪烁的效果。

这种实现方式可以用来创建动态的视觉效果,例如闪电或光标效果。

实现代码

@Entry
@Component
struct IvSkeleton {
  @State translageX: string = '-100%' // 定义闪电效果的位置
  widthValue: number = 100
  heightValue: number = 100

  build() {
    Stack() {
      // 背景效果
      Text()
        .height(this.heightValue)
        .width(this.widthValue)
        .backgroundColor('rgba(0,0,0,0.1)')

      // 闪电效果
      Text()
        .height(this.heightValue)
        .width(this.widthValue)
        .translate({ x: this.translageX })// 控制闪电位置
        .onAppear(() => {
          // 当组件加载后,触发此函数,将translate的x轴位置改变到100%
          this.translageX = '100%'
        })
        .animation({
          duration: 1500, // 1.5秒内完成闪电动画
          iterations: -1  // 无限闪动动画
        })
        .linearGradient({
          // 闪电效果
          angle: 90,
          colors: [
            ['rgba(255,255,255,0)', 0],
            ['rgba(255,255,255,1)', 0.5],
            ['rgba(255,255,255,0)', 1]
          ]
        })
    }
  }
}

效果图

1

页面效果

2

以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!
下面是鸿蒙的完整学习路线,展示如下:
1

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完整的学习【文档+视频】,内容包含如下

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

鸿蒙【北向应用开发+南向系统层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经

2

为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!
3


http://www.kler.cn/a/300138.html

相关文章:

  • Tensor 基本操作1 unsqueeze, squeeze, softmax | PyTorch 深度学习实战
  • 代码随想录day1
  • 【面试】Java 记录一次面试过程 三年工作经验
  • MyBatis和JPA区别详解
  • Linux编译安装Netgen/NGSolve
  • Effective C++读书笔记——item22(明确变量的作用域和访问权限)
  • 测试微信发朋友圈:功能、界面/易用性、中断、网络、兼容性、安全性、性能测试
  • 性能测试经典案例解析——政务查询系统
  • k8s的应用
  • 基于Ant-Design-Vue设计的配置化表单
  • curl和ping
  • 【leetcode C++】 动态规划
  • lamp的脚本部署
  • 【CAPL实战】解决调用LIN函数不生效问题
  • [笔记]电参数测量的现有方案
  • Cesium 展示——视角漫游飞行效果
  • Linux系统本地化部署Dify并安装Ollama运行llava大语言模型详细教程
  • uniapp和vue3中使用vConsole在H5中开启移动端调试
  • R语言论文插图模板第9期—滑珠散点图
  • 一文彻底了解DNS协议工作原理,恐怕没有比这更通俗易懂的了吧?
  • HAProxy--高性能反向代理
  • MySQL 数据库:原理、应用与发展
  • 【CanMV K230 AI视觉】人脸姿态(脸部朝向)
  • Unity Hub自动安装指定版本Unity的Android开发环境
  • 【机器学习】生成对抗网络(Generative Adversarial Networks, GANs)详解
  • 14.2 k8s中我们都需要监控哪些组件