HarmonyOS脚手架:UI组件之文本和图片

前言

关于HarmonyOS脚手架,本篇是系列的第二篇,主要实现UI组件文本和图片的常见效果查看,本身功能特别的简单,其目的也是很明确,方便大家根据效果查看相关代码实现,可以很方便的进行复制使用,当然了,这些所谓的小功能都是开胃小菜,脚手架的最终成型,势必可以惊艳到大家,大家可以持续关注。

效果呢如下所示,左边是常见效果,点击后,右边展示效果代码:

下图是录制的一个GIF,大家可以直观的查看。

还是按照以往的案例,先说下基本实现,在说下脚手架的实现方式。

脚手架地址:

https://github.com/AbnerMing888/HarmonyScaffolding

1、常见文本效果代码

2、常见图片效果代码

3、脚手架实现分析

4、相关总结

一、常见文本效果代码

1、普通文字

Text("普通文字")

2、文字加粗

    Text("文字加粗")
        .fontWeight(FontWeight.Bold)

3、文字倾斜

  Text("文字倾斜")
        .fontStyle(FontStyle.Italic)

4、文字颜色

   Text("文字颜色")
        .fontColor("#ff0000")

5、文字大小

      Text("文字大小")
        .fontSize(23)

5、文字背景

      Text("文字背景")
        .fontColor(Color.White)
        .backgroundColor(Color.Red)

6、圆角文字背景

      Text("圆角文字背景")
        .fontColor(Color.White)
        .backgroundColor(Color.Red)
        .borderRadius(5)

7、圆背景

      Text("圆")
        .width(30)
        .height(30)
        .textAlign(TextAlign.Center)
        .fontColor(Color.White)
        .backgroundColor(Color.Red)
        .borderRadius(30)

8、省略文字

      Text("我是一段很长的文字,当超出一行时,就会展示出省略号")
        .maxLines(1)
        .margin({ left: 20, right: 20 })
        .textOverflow({ overflow: TextOverflow.Ellipsis })

9、文字点击事件

      Text("文字点击事件")
        .onClick(() => {
          promptAction.showToast({
            message: '我点击了文字',
            duration: 2000,
          })
        })

10、富文本效果

Text() {
        Span("富文本效果:")
        Span("《用户协议》").fontColor(Color.Red)
          .decoration({ type: TextDecorationType.Underline, color: Color.Red })
          .onClick(() => {
            promptAction.showToast({
              message: '《用户协议》',
              duration: 2000,
            })
          })
        Span(" 和 ")
        Span("《隐私政策》").fontColor(Color.Red)
          .decoration({ type: TextDecorationType.Underline, color: Color.Red })
          .onClick(() => {
            promptAction.showToast({
              message: '《隐私政策》',
              duration: 2000,
            })
          })
      }

11、文字左侧带图片

      Row() {
        Text("文字左侧带图片")
        Image($r("app.media.app_icon"))
          .width(20)
          .height(20)
      }

12、文字右侧带图片

      Row() {
        Image($r("app.media.app_icon"))
          .width(20)
          .height(20)
        Text("文字右侧带图片")
      }

13、文字上侧带图片

      Column() {
        Image($r("app.media.app_icon"))
          .width(20)
          .height(20)
        Text("文字上侧带图片")
      }

14、文字下侧带图片

      Column() {
        Text("文字下侧带图片")
        Image($r("app.media.app_icon"))
          .width(20)
          .height(20)
      }

二、常见图片效果代码

1、普通图片

Image($r("app.media.hos_logo"))
            .height(100)
            .margin({ top: 20 })

2、加载动图

 Image("https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a35a1eff167c4a6b85455469e2be1dba~tplv-k3u1fbpfcp-jj:135:90:0:0:q75.awebp#?w=470&h=314&s=1171503&e=gif&f=32&b=d0c0a4")
            .height(100)

3、网络图片

Image("https://www.vipandroid.cn/ming/image/gan.png")
            .height(100)
            .alt($r("app.media.icon"))

4、圆角图片

 Image($r("app.media.hos_logo"))
            .height(100)
            .borderRadius(10)

5、圆形图片clip设置

Image($r("app.media.hos_logo"))
            .width(100)
            .height(100)
            .clip(new Circle({ width: 100, height: 100 }))

6、圆形图片borderRadius设置

 Image($r("app.media.hos_logo"))
            .width(100)
            .height(100)
            .borderRadius(100)

7、圆角图片边线链式调用

Image($r("app.media.hos_logo"))
            .height(100)
            .borderRadius(10)
            .borderWidth(1)
            .borderColor(Color.Red)

8、圆角图片边线border调用

Image($r("app.media.hos_logo"))
            .height(100)
            .border({ width: 1, color: Color.Red, radius: 10 })

9、圆形图片边线border调用

Image($r("app.media.hos_logo"))
            .width(100)
            .height(100)
            .border({ width: 1, color: Color.Red, radius: 100 })

10、圆形图片边线链式调用

Image($r("app.media.hos_logo"))
            .width(100)
            .height(100)
            .borderRadius(100)
            .borderWidth(1)
            .borderColor(Color.Red)

11、占位图片设置

Image($r("app.media.hos_logo"))
            .height(100)
            .alt($r("app.media.icon"))
            .margin({ top: 20 })

12、图片加载错误设置

          Image(this.errorImage)
            .height(100)
            .alt($r("app.media.icon"))
            .margin({ top: 20 })
            .onError(() => {
              //图片加载错误,重新赋值
              this.errorImage = "https://www.vipandroid.cn/ming/image/zao.png"
            })

13、获取图片的宽高

          Image($r("app.media.hos_logo"))
            .height(100)
            .margin({ top: 20 })
            .onComplete((msg: {
              width: number,
              height: number
            }) => {
              this.widthValue = msg.width
              this.heightValue = msg.height
            })

14、黑白渲染模式图片

 Image($r("app.media.hos_logo"))
            .height(100)
            .margin({ top: 20 })
            .renderMode(ImageRenderMode.Template)

15、图片填充效果Cover

 Image($r("app.media.hos_logo"))
            .width(100)
            .height(100)
            .margin({ top: 20 })
            .objectFit(ImageFit.Cover)

16、图片填充效果Fill

   Image($r("app.media.hos_logo"))
            .width(100)
            .height(100)
            .margin({ top: 20 })
            .objectFit(ImageFit.Fill)

17、图片填充效果Contain

          Image($r("app.media.hos_logo"))
            .width(100)
            .height(100)
            .margin({ top: 20 })
            .objectFit(ImageFit.Contain)

三、脚手架实现分析

前两篇关于脚手架已经做过解读,目前是用web语言开发的,所以在写脚手架的时候,我会把实际的效果用ArkUI写一套,对应的效果,也会在脚手架用js写一套,确实相对于之前的Flutter脚手架,复杂了一些,只能期待后续鸿蒙支持PC端开发了,相信也快。

左侧是用html绘制的相关效果,每一个效果都对应一段ArkUI代码,就是这么简单[捂脸哭]

四、相关总结

目前仅仅完成了文本和图片的效果和代码展示,本身并没有技术含量,后续关于相关UI也会不断地扩展,不断地丰富起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/208807.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

cmake和vscode 下的cmake的使用详解(二)

第四讲: GDB 调试器 前言: GDB(GNU Debugger) 是一个用来 调试 C/C 程序 的功能强大的 调试器 ,是 Linux 系统开发 C/C 最常用的调试器 程序员可以 使用 GDB 来跟踪程序中的错误 ,从而减少程序员的工作量。 Linux 开发 C/C …

CSS——基础选择器、文字控制属性

1、CSS定义 层叠样式表(Cascading Style Sheets,缩写为CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。 书写位置:title 标签下方添加style双标签,styl…

gitlab高级功能之CI/CD组件 - 实践(二)

上一篇主要讲解了CI/CD组件的原理,看起来稍微有一点枯燥,那么接下来给大家演示下如何使用。 案例 创建一个项目(README.md,template目录) 案例1 step1: 在template中新建yml文件,cat templates/test-st…

externalTrafficPolicy 再探

一 externalTrafficPolicy 属性再探 一次网络不通"争吵"引发的思考 K8s中的external-traffic-policy是什么? 说明: 阿里云的 EDAS 和ACK的默认行为不一样 Kubernetes(二十三)Service(二)会话保持和获取客户端的ip 访问 externalTrafficPolicy 为 L…

用于药物发现的知识图谱

我在GitHub上搜索了一下,发现有一些项目涉及到知识图谱在药物发现领域的应用。 一个项目是 **KDD2023_KaGML_DrugDiscovery_Tutorial**,它是一个关于药物发现的教程,介绍了如何使用知识增强的图机器学习(KaGML)来进行…

springboot+vue志愿者在线报名服务管理系统java毕业设计源码+数据库

vuespringboot志愿服务管理系统 本项目是springbootvueElementuimysql源码 开发工具,idea和eclipse都可以,MySQL 源码下载地址 https://download.csdn.net/download/yibo2022/88401958?spm1003.2166.3001.6637.3https://download.csdn.net/download/yibo2022/884…

2023-12-01 LeetCode每日一题(找出叠涂元素)

2023-12-01每日一题 一、题目编号 2661. 找出叠涂元素二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。 从下标 0 开始遍历 arr 中的每…

解决 Idea 下 Tomcat 乱码 问题

解决方案 找了很多的解决方案,但是日志文件和控制台信息只能解决一个,不能兼得,下面给出最佳方案 1.打开 Tomcat 安装目录并找到 conf 文件夹 重启IDEA 即可

SQL练习3

1、创建数据库school,字符集为utf8 mysql> create database school; Query OK, 1 row affected (0.00 sec) mysql> show databases; -------------------- | Database | -------------------- | db1 | | information_schema | | mye…

OpenHarmony 设备启动Logo和启动视频替换指南

前言 OpenHarmony源码版本:4.0release 开发板:DAYU / rk3568 一、Logo替换 替换其中的logo.bmp 和 logo_kernel.bmp文件 注意事项: 1、图片的分辨率需要和设备匹配 2、如果是非首次编译(存在缓存)需要将out目录删…

香港专才计划(输入内地人才计划)申请条件?附官网和申请攻略、利弊!

香港专才计划(输入内地人才计划)申请条件?附官网和申请攻略、利弊! 输入内地人才计划(英语:Admission Scheme for Mainland Talents and Professionals (ASMTP)),俗称专才计划&#…

WordPress采集器自动采集发布的工具

WordPress作为最受欢迎的内容管理系统之一,其强大的功能和灵活性使其成为许多网站、博客和电子商务平台的首选。WordPress采集器自动采集发布内置采集规则是一项备受关注的功能,让用户可以轻松收集并发布内容。WordPress采集器自动采集发布内置采集规则的…

亚马逊云科技推出新一代自研芯片

北京——2023 年12月1日 亚马逊云科技在2023 re:Invent全球大会上宣布其自研芯片家族的两个系列推出新一代,包括Amazon Graviton4和Amazon Trainium2,为机器学习(ML)训练和生成式人工智能(AI)应用等广泛的工…

TikTok美食狂潮:短视频如何塑造食物文化新趋势

短视频不仅成为分享美食的平台,更是塑造了一种全新的食物文化趋势。本文将深入探讨TikTok如何通过短视频影响食物文化,并推动美食体验的创新。 创意美食视频的崛起 传统的美食呈现方式通常通过图片或文字,而短视频带来了全新的美食呈现方式。…

Ubuntu安装HP LaserJet P3010系列打印机驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装驱动二、其它设置总结 前言 最近在研究Ubuntu Desktop版,无意间看到了打印机选项,就好奇去试了试。居然配置成功了&#xff0c…

智安网络|发现未知风险,探索渗透测试的奥秘与技巧

在当今信息时代,网络安全已成为组织和个人面临的重大挑战。为了保护网络系统的安全,渗透测试成为一种重要的手段。 一、渗透测试的基本原理 渗透测试是通过模拟黑客攻击的方式,对目标系统进行安全评估。其基本原理是模拟真实攻击者的思维和行…

网传滴滴系统崩了,是因为k8s版本升级错误?

11月27日晚间,滴滴因系统故障导致App服务异常登上热搜,不仅无法显示定位、无法打车,有司机的后台还显示收入超690亿。28日和29日,滴滴两次发文致歉,称初步确定事故起因是底层系统软件发生故障。 相较于一些网友戏谑的…

Spinnaker 基于 jenkins 触发部署

jenkins job 触发部署 将 Jenkins 设置为 Spinnaker 中的持续集成 (CI) 系统可让您使用 Jenkins 触发管道、向管道添加 Jenkins 阶段或向管道添加脚本阶段。 前置要求: 已在kubernetes中部署spinnaker已准备可用的jenkins实例 启用 jenkins触发器 官方文档&…

使用LVM给Centos根分区扩容

1.查看磁盘使用 roottomoncle:~# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 1.1M 2.0G 1% /run …

leetCode 494.递增子序列 + 回溯算法 + 图解 + 笔记

给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。 示例 1&#…