004、简单页面-基础组件

之——基础组件

目录

之——基础组件

杂谈

正文

1.Image

1.0 数据源 

 1.1 缩放

1.2 大小 

 1.3 网络图片

2.Text

2.0 数据源

2.1 大小 

2.2 粗细 

2.3 颜色 

2.5 样式字体 

2.6 基础示例 

 2.7 对齐

2.8 省略 

2.9 划线 

3.TextInput

3.1 输入类型 

3.2 提示文本属性 

3.3 光标 

4.Button

4.1 样式 

4.2 子组件 

5.LoadingProgress


杂谈

        基础组件的使用。

        组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声明式开发范式为开发者提供了丰富多样的UI组件,我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。

        组件根据功能可以分为以下五大类:基础组件、容器组件、媒体组件、绘制组件、画布组件。其中基础组件是视图层的基本组成单元,包括Text、Image、TextInput、Button、LoadingProgress等。

        例如下面这个常用的登录界面就是由这些基础组件组合而成:


正文

1.Image

        渲染和展示图片,支持加载本地和网络图片。

        Image组件用来渲染展示图片,它可以让界面变得更加丰富多彩。只需要给Image组件设置图片地址、宽和高,图片就能加载出来。

Image($r("app.media.icon")).width(100).height(100)
1.0 数据源 

        其中,图片数据源:

 

 1.1 缩放

        为了使图片在页面中有更好的显示效果,有时候需要对图片进行缩放处理。可以使用objectFit属性设置图片的缩放类型,objectFit的参数类型为ImageFit。

//将图片加载到Image组件,设置宽高各100,设置objectFit为Cover(默认值),设置图片背景色为灰色0xCCCCCC
Image($r("app.media.image2")).objectFit(ImageFit.Cover).backgroundColor(0xCCCCCC).width(100).height(100) 

        ImageFit包含以下几种类型:

  • Contain:保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。

  • Cover(默认值):保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。

  • Auto:自适应显示。

  • Fill:不保持宽高比进行放大缩小,使得图片充满显示边界。

  • ScaleDown:保持宽高比显示,图片缩小或者保持不变。

  • None:保持原有尺寸显示。

1.2 大小 

        大小调整,float.json:

 1.3 网络图片

        浏览新闻的时候,图片一般从网络加载而来,Image组件支持加载网络图片,将图片地址换成网络图片地址进行加载。

Image('https://www.example.com/xxx.png')

        为了成功加载网络图片,需要在module.json5文件中申明网络访问权限。

{"module" : {"requestPermissions":[{"name": "ohos.permission.INTERNET"}]}
}       

2.Text

        展示文本信息。

2.0 数据源

         其中,文本来源,string..json:

2.1 大小 

         文本大小fontSize,float.json:

2.2 粗细 

        文本粗细fontWeight:

        设置文本的字体粗细,number类型取值[100, 900],取值间隔为100,默认为400,取值越大,字体越粗。string类型仅支持number类型取值的字符串形式,例如“400”,以及“bold”、“bolder”、“lighter”、“regular”、“medium”,分别对应FontWeight中相应的枚举值。默认值:FontWeight.Normal

2.3 颜色 

        文本颜色fontColor:

2.5 样式字体 

        还有fontStyle设置样式,FontStyle.Italic是斜体;fontFamily设置文本的字体列表。使用多个字体,使用“,”进行分割,优先级按顺序生效。例如:“Arial,sans-serif”。

2.6 基础示例 
@Entry
@Component
struct TextDemo {build() {Row() {Column() {Text('HarmonyOS')Text('HarmonyOS').fontColor(Color.Blue).fontSize(20).fontStyle(FontStyle.Italic).fontWeight(FontWeight.Bold).fontFamily('Arial')}.width('100%')}.backgroundColor(0xF1F3F5).height('100%')}
}

 2.7 对齐

         文本对齐方式,textAlign:

Text('HarmonyOS').width(200).textAlign(TextAlign.Start).backgroundColor(0xE6F2FD)

        TextAlign.Start/Center/End

2.8 省略 

        文本超长显示,textOverflow:(需配合maxLines使用,单独设置不生效)

 

Text('This is the text content of Text Component This is the text content of Text Component').fontSize(16).maxLines(1).textOverflow({overflow:TextOverflow.Ellipsis}).backgroundColor(0xE6F2FD) 

2.9 划线 

        文本装饰线,decoration: 

Text('HarmonyOS').fontSize(20).decoration({ type: TextDecorationType.Underline, color: Color.Black }).backgroundColor(0xE6F2FD)

        TextDecorationTyp包含None、Overline、LineThrough、Underline。


3.TextInput

        输入单行文本,响应输入事件,获取用户输入的文本信息。

TextInput().fontColor(Color.Blue).fontSize(20).fontStyle(FontStyle.Italic).fontWeight(FontWeight.Bold).fontFamily('Arial') 

3.1 输入类型 

        输入类型枚举:

3.2 提示文本属性 

        提示文本样式,placeholderFont:

TextInput({ placeholder: '请输入帐号' }).placeholderColor(0x999999).placeholderFont({ size: 20, weight: FontWeight.Medium, family: 'cursive', style: FontStyle.Italic })
3.3 光标 

        光标位置,TextInputController的caretPosition动态设置光标位置:

@Entry
@Component
struct TextInputDemo {controller: TextInputController = new TextInputController()build() {Column() {TextInput({ controller: this.controller })Button('设置光标位置').onClick(() => {this.controller.caretPosition(2)})}.height('100%').backgroundColor(0xE6F2FD)}
}


4.Button

        响应点击操作。

Button('登录', { type: ButtonType.Capsule, stateEffect: true }).width('90%').height(40).fontSize(16).fontWeight(FontWeight.Medium).backgroundColor('#007DFF')

         type用于定义按钮样式,示例代码中ButtonType.Capsule表示胶囊形按钮;stateEffect用于设置按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭,默认值为true。

4.1 样式 

        Button样式枚举:

4.2 子组件 

        Button组件可以包含子组件,以开发出更丰富多样的Button,下面的示例代码中Button组件包含了一个Image组件:

Button({ type: ButtonType.Circle, stateEffect: true }) {Image($r('app.media.icon_delete')).width(30).height(30)
}
.width(55)
.height(55)
.backgroundColor(0x317aff)


5.LoadingProgress

         LoadingProgress组件用于显示加载进展,比如应用的登录界面,当我们点击登录的时候,显示的“正在登录”的进度条状态。LoadingProgress的使用非常简单,只需要设置颜色和宽高就可以了。

LoadingProgress().color(Color.Blue).height(60).width(60)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量子测量-技术点杂录

目录: 高质量文章导航-持续更新中_GZVIMMY的博客-CSDN博客 前置:量子测量设备 电子显微镜:电子显微镜可以在非常高分辨率下观察生物组织、细胞和分子结构。通过调整电子束的强度和聚焦来观察细胞内部的微小结构。但是,电子显微镜需要对样品进行切片处理,而且在真空中进行…

【Android知识笔记】兼容适配专题

屏幕适配 常规适配手段 使用像素密度无关的尺寸单位 避免写死控件,尽量多使用wrap_content、match_parent、weight控件距离使用dp 字体大小使用sp不要用写死的px值布局方面 使用相对布局,禁用绝对布局使用约束布局ConstraintLayout使用百分比布局使用布局限定符 使用尺寸限…

HbuilderX 项目打包文件过大问题优化

文章目录 HbuilderX 项目打包文件过大问题优化主要操作收效甚微,但又有那么点用的方法使用 gulp 压缩(最后一步)使用与配置 网上找的 gulp 优化压缩配置还未尝试可能有用的方法 尝试过程中看到的一些优质文章 HbuilderX 项目打包文件过大问题…

Shell循环:for(三)

示例:使用for实现批量主机root密码的修改 一、前提 已完成密钥登录配置(ssh-keygen)定义主机地址列表并了解远程修改密码的方法 [rootlocalhost ~]# ssh-keygen #设置免密登录[rootlocalhost ~]# ssh-copy-id 192.168.151.151 二、演示…

科研学习|论文解读——Open government research over a decade: A systematic review

Open government research over a decade: A systematic review 十年来的开放政府研究:一个系统性综述 摘要 在过去十年中,对开放政府的学术研究蓬勃发展。然而,对开放政府的全面审查是有限的。这一研究空白不仅阻碍了我们对开放政府整体知…

mysql区分大小写吗

mysql在windows下默认是不区分大小写的,在linux下默认是区分大小写的。 所以,为了避免出问题,许多公司的数据库编程规范中明确规定:库名、表名、列名、索引名一律小写,不同单词之间以下划线分割,且控制在3…

重庆市失业金申领流程

1.领失业金的前提:非本人意愿中断就业。个人理解就是不是主动辞职才能领。 2.因此公司在处理社保减员的时候,不能是劳动者主动提出离职。 3.社保减员可选择原因:其他原因中断缴费 / 由单位提出双方协商一致解除劳动合同。 4.当社保暂停缴费…

算法——滑动窗口

滑动窗口大致分为两类:一类是窗口长度固定的,即left和right可以一起移动;另一种是窗口的长度变化(例如前五道题),即right疯狂移动,left没怎么动,这类题需要观察单调性(即指针)等各方…

以下哪项不是在内蒙古举办的?()

需要查看更多试题和答案,可以前往题海舟(题海舟)进行搜题查看。可以搜“题干关键词”。 以下哪项不是在内蒙古举办的?() A.中蒙博览会 B.东北亚区域合作高峰论坛 C.中蒙俄合作高层论坛 D.中日经济合作会 …

C++基础 -32- 逻辑运算符重载

逻辑运算符重载格式 bool operator&&(data1&a,data2&b) {if(a.a&&b.a){return true;}elsereturn false; }举例使用单目运算符重载 #include "iostream"using namespace std;class data1 {public :int a;data1(int a):a(a){} };class d…

(数据结构)顺序表的查找

静态分配代码&#xff1a; #include<stdio.h> #include<stdlib.h> #define MAX 100 typedef struct LinkList {int data[MAX];int lenth; }Link; //初始化 void CreateList(Link* L) {L->lenth 0;for (int i 0; i < MAX; i){L->data[i] 0;} } //插入 …

策略模式与简单工厂模式:终结if-else混乱,让代码更清爽

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概4500多字&#xff0c;预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…

记录 | linux find+rm查找并直接删除

findrm查找并直接删除&#xff1a; find ./ -name "xx_name" |xargs rm -rf

计算机网络扫盲(2)——网络边缘

一、概述 在计算机网络得到术语中&#xff0c;我们把与因特网相连的计算机或其他设备称为端系统&#xff08;或者主机&#xff09;&#xff0c;如下图所示&#xff0c;因为它们位于因特网的边缘&#xff0c;所以被称为端系统。因特网的端系统包括了桌面计算机&#xff…

Hdoop学习笔记(HDP)-Part.09 安装OpenLDAP

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

蓝桥杯day03——Bigram 分词

1.题目 给出第一个词 first 和第二个词 second&#xff0c;考虑在某些文本 text 中可能以 "first second third" 形式出现的情况&#xff0c;其中 second 紧随 first 出现&#xff0c;third 紧随 second 出现。 对于每种这样的情况&#xff0c;将第三个词 "th…

【LittleXi】2023年广东工业大学腾讯杯新生程序设计竞赛

文章目录 【LittleXi】2023年广东工业大学腾讯杯新生程序设计竞赛A.星期几考试&#xff1f;C.信件D、乘除法E、不知道叫什么名字F.我要学会盾反&#xff01;G.闪闪发光心动不已&#xff01;H.不想想背景的gcdI.uu爱玩飞行棋J.火柴人小游戏K .有趣的BOSS 【LittleXi】2023年广东…

Android布局控件之LinearLayout、RelativeLayout、GridLayout、ScrollView

线性布局&#xff08;LinearLayout&#xff09; orientation horizontal:水平从左往右vertical:垂直从上到下若不指定orientation属性&#xff0c;默认为水平 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http:…

什么是DDoS攻击

DDoS攻击 1. 定义2. DDoS攻击类型2.1 网络层攻击2.2 传输层攻击2.3 应用层攻击 3.DDoS攻击态势特点 1. 定义 分布式拒绝服务&#xff08;DDoS&#xff09;攻击是一种常见的网络攻击形式。攻击者利用恶意程序对一个或多个目标发起攻击&#xff0c;企图通过大规模互联网流量耗尽…

微软与 OpenAI 宫斗大戏背后的故事【番外详细剖析篇】

​​微软和 OpenAI 曾精心制定了一个协议&#xff0c;目的是既要雄心勃勃又要确保安全地发布人工智能产品。然而&#xff0c;OpenAI 的董事会突然打破了所有这些精心策划的计划。 在感恩节前一个星期五的上午 11:30 左右&#xff0c;微软的首席执行官 Satya Nadella 正在和高层…