梅科尔工作室E1-张冉-鸿蒙笔记2
文本
基本操作
资料
针对包含文本元素的组件,例如Text、Span、Button、TextInput等,可使用fontColor、fontSize、fontStyle、 fontWeight、fontFamily这些文本样式,分别设置文本的颜色、大小、样式、粗细以及字体,文本样式的属性如下表:
代码
@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%')
}
}
对齐操作
资料
Start(默认值):水平对齐首部。
Center:水平居中对齐。
End:水平对齐尾部。
代码
Text('HarmonyOS')
.width(200)
.textAlign(TextAlign.Start)
.backgroundColor(0xE6F2FD)
文本超长显示
资料
当文本内容较多超出了Text组件范围的时候,您可以使用textOverflow设置文本截取方式,需配合maxLines使用,单独设置不生效,maxLines用于设置文本显示最大行数。下面的示例代码将textOverflow设置为Ellipsis ,它将显示不下的文本用 “...” 表示:
代码
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)
文本装饰线
资料
使用decoration设置文本装饰线样式及其颜色,大家在浏览网页的时候经常可以看到装饰线,例如带有下划线超链接文本。decoration包含type和color两个参数,其中type用于设置装饰线样式,参数类型为TextDecorationTyp,color为可选参数。
None:不使用文本装饰线。
Overline:文字上划线修饰。
LineThrough:穿过文本的修饰线。
Underline:文字下划线修饰。
代码
Text('HarmonyOS')
.fontSize(20)
.decoration({ type: TextDecorationType.Underline, color: Color.Black })
.backgroundColor(0xE6F2FD)
图片
基础操作
Image组件用来渲染展示图片,它可以让界面变得更加丰富多彩。只需要给Image组件设置图片地址、宽和高,图片就能加载出来,示例如下:
代码
Image($r("app.media.icon"))
.width(100)
.height(100)
设置缩放类型
资料
资料为了使图片在页面中有更好的显示效果,有时候需要对图片进行缩放处理。您可以使用objectFit属性设置图片的缩放类型,objectFit的参数类型为ImageFit。
ImageFit包含以下几种类型:
Contain:保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。
Cover(默认值):保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。
Auto:自适应显示。
Fill:不保持宽高比进行放大缩小,使得图片充满显示边界。
ScaleDown:保持宽高比显示,图片缩小或者保持不变。
None:保持原有尺寸显示。
代码
原图
Image($r("app.media.image2"))
.objectFit(ImageFit.Cover)
.backgroundColor(0xCCCCCC)
.width(100)
.height(100)
加载网络图片
比如浏览新闻的时候,图片一般从网络加载而来,Image组件支持加载网络图片,将图片地址换成网络图片地址进行加载。
Image('https://www.example.com/xxx.png')
为了成功加载网络图片,您需要在module.json5文件中申明网络访问权限。
{
"module" : {
"requestPermissions":[
{
"name": "ohos.permission.INTERNET"
}
]
}
}
应用访问网络需要申请ohos.permission.INTERNET权限,因为HarmonyOS提供了一种访问控制机制即应用权限,用来保证这些数据或功能不会被不当或恶意使用。关于应用权限的的详细信息开发者可以参考:访问控制。
TextInput
TextInput组件用于输入单行文本,响应输入事件。TextInput的使用也非常广泛,例如应用登录账号密码、发送消息等。和Text组件一样,TextInput组件也支持文本样式设置,下面的示例代码实现了一个简单的输入框:
TextInput()
.fontColor(Color.Blue)
.fontSize(20)
.fontStyle(FontStyle.Italic)
.fontWeight(FontWeight.Bold)
.fontFamily('Arial')
效果图如下:
设置输入提示文本
当我们平时使用输入框的时候,往往会有一些提示文字。例如登录账号的时候会有“请输入账号”这样的文本提示,当用户输入内容之后,提示文本就会消失,这种提示功能使用placeholder属性就可以轻松的实现。您还可以使用placeholderColor和placeholderFont分别设置提示文本的颜色和样式,示例代码如下:
TextInput({ placeholder: '请输入帐号' })
.placeholderColor(0x999999)
.placeholderFont({ size: 20, weight: FontWeight.Medium, family: 'cursive', style: FontStyle.Italic })
效果图如下:
设置输入类型
可以使用type属性来设置输入框类型。例如密码输入框,一般输入密码的时候,为了用户密码安全,内容会显示为“......”,针对这种场景,将type属性设置为InputType.Password就可以实现。示例代码如下:
TextInput({ placeholder: '请输入密码' })
.type(InputType.Password)
效果图如下:
type的参数类型为InputType,包含以下几种输入类型:
Normal:基本输入模式。支持输入数字、字母、下划线、空格、特殊字符。
Password:密码输入模式。
Email:e-mail地址输入模式。
Number:纯数字输入模式。
设置光标位置
可以使用TextInputController动态设置光位置,下面的示例代码使用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)
}
}
效果图如下:
获取输入文本
我们可以给TextInput设置onChange事件,输入文本发生变化时触发回调,下面示例代码中的value为实时获取用户输入的文本信息。
@Entry
@Component
struct TextInputDemo {
@State text: string = ''
build() {
Column() {
TextInput({ placeholder: '请输入账号' })
.caretColor(Color.Blue)
.onChange((value: string) => {
this.text = value
})
Text(this.text)
}
.alignItems(HorizontalAlign.Center)
.padding(12)
.backgroundColor(0xE6F2FD)
}
}
效果图如下:
5 Button
Button组件主要用来响应点击操作,可以包含子组件。下面的示例代码实现了一个“登录按钮”:
Button('登录', { type: ButtonType.Capsule, stateEffect: true })
.width('90%')
.height(40)
.fontSize(16)
.fontWeight(FontWeight.Medium)
.backgroundColor('#007DFF')
效果图如下:
设置按钮样式
type用于定义按钮样式,示例代码中ButtonType.Capsule表示胶囊形按钮;stateEffect用于设置按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭,默认值为true。
我们可以设置多种样式的Button,除了Capsule可以以设置Normal和Circle:
Capsule:胶囊型按钮(圆角默认为高度的一半)。
Circle:圆形按钮。
Normal:普通按钮(默认不带圆角)。
设置按钮点击事件
可以给Button绑定onClick事件,每当用户点击Button的时候,就会回调执行onClick方法,调用里面的逻辑代码。
Button('登录', { type: ButtonType.Capsule, stateEffect: true })
...
.onClick(() => {
// 处理点击事件逻辑
})
包含子组件
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)
效果图如下:
6 LoadingProgress
LoadingProgress组件用于显示加载进展,比如应用的登录界面,当我们点击登录的时候,显示的“正在登录”的进度条状态。LoadingProgress的使用非常简单,只需要设置颜色和宽高就可以了。
LoadingProgress()
.color(Color.Blue)
.height(60)
.width(60)
效果图如下:
7 使用资源引用类型
Resource是资源引用类型,用于设置组件属性的值。推荐大家优先使用Resource类型,将资源文件(字符串、图片、音频等)统一存放于resources目录下,便于开发者统一维护。同时系统可以根据当前配置加载合适的资源,例如,开发者可以根据屏幕尺寸呈现不同的布局效果,或根据语言设置提供不同的字符串。
例如下面的这段代码,直接在代码中写入了字符串和数字这样的硬编码。
Button('登录', { type: ButtonType.Capsule, stateEffect: true })
.width(300)
.height(40)
.fontSize(16)
.fontWeight(FontWeight.Medium)
.backgroundColor('#007DFF')
我们可以将这些硬编码写到entry/src/main/resources下的资源文件中。
在string.json中定义Button显示的文本。
{
"string": [
{
"name": "login_text",
"value": "登录"
}
]
}
在float.json中定义Button的宽高和字体大小。
{
"float": [
{
"name": "button_width",
"value": "300vp"
},
{
"name": "button_height",
"value": "40vp"
},
{
"name": "login_fontSize",
"value": "18fp"
}
]
}
在color.json中定义Button的背景颜色。
{
"color": [
{
"name": "button_color",
"value": "#1890ff"
}
]
}
然后在Button组件通过“$r('app.type.name')”的形式引用应用资源。app代表应用内resources目录中定义的资源;type代表资源类型(或资源的存放位置),可以取“color”、“float”、“string”、“plural”、“media”;name代表资源命名,由开发者定义资源时确定。
Button($r('app.string.login_text'), { type: ButtonType.Capsule })
.width($r('app.float.button_width'))
.height($r('app.float.button_height'))
.fontSize($r('app.float.login_fontSize'))
.backgroundColor($r('app.color.button_color'))
梅科尔工作室E1-张冉-鸿蒙笔记2相关推荐
- 梅科尔工作室-郜翱翔-鸿蒙笔记1
鸿蒙简介 华为鸿蒙系统(HUAWEI Harmony OS),是华为公司在2019年8月9日于东莞举行华为开发者大会(HDC.2019)上正式发布的操作系统. 华为鸿蒙系统是一款全新的面向全场景的分布 ...
- 梅科尔工作室E1-张冉-鸿蒙笔记4
@ohos.router (页面路由) 导入模块 import router from'@ohos.router' router.push push(options: RouterOptions): ...
- 梅科尔工作室-于天姿-鸿蒙笔记4
一.路由跳转 1.导入 首先导入router模块 2.跳转方式 方式一 router.push(),跳转到指定页面. 每调用一次router.push()方法,均会新建一个页面.默认情况下,页面栈数量 ...
- 梅科尔工作室-杨灿-鸿蒙笔记1
1.主要目录配置文件作用 stage模型下: AppScope>app.json5 是应用的全局的配置文件,用于存放应用 公共的配置信息. entry模块 ...
- 梅科尔工作室-张黎娜-鸿蒙笔记3
list组件 由list容器组件和listitem容器组件构成,list是一个大容器,listitem是大容器里的小容器. 使用说明 父子组件(自定义组件) 子组件导出用export语句 子组件中不能 ...
- 梅科尔工作室-徐锦航-鸿蒙笔记2
基础组件的应用 常用基础组件 Image:渲染.展示图片,支持加载网络和本地图片 Text Textinput:输入单行文本 Button:响应点击操作 构建简单的页面 容器组件 有两个横向布局,所以 ...
- 梅科尔工作室-杨灿-鸿蒙笔记2
组件:界面搭建与显示的最小单元 基础组件: Text组件:用于界面上展示一段文本信息,可以包含子组件span Textinput组件:用于输入单行文本,响应输入时间 image组件:支持加载本地图片和 ...
- 梅科尔工作室-王宣-鸿蒙笔记1
一.主要目录配置文件作用 1. stage模型 ①app.json模块 AppScope>app.json5是应用的全局的配置文件,用于存放应用公共的配置信息. bundleName是包名 ...
- 梅科尔工作室-赵凌志-鸿蒙笔记4
Ability内页面的跳转和数据传递 Ability的数据传递包括有Ability内页面的跳转和数据传递.Ability间的数据跳转和数据传递,本章节主要讲解Ability内页面的跳转和数据传递. 在 ...
最新文章
- slot没有毁灭的问题_解析flink之perjob模式下yn参数不生效问题
- Django资源大全
- exit命令的返回值
- 大气辐射示意简单图_手绘地理 | 分步骤图解大气受热过程及应用
- 11、1.4.3 测试JDK安装成功
- diy一个android手机版下载,原神个人自制版
- fasync驱动异步通知机制
- assert和if的使用
- 金蝶kis云,调用增删改查注意点
- 计算机在气象预测的应用,计算机在地面气象观测中的实际应用
- python爬取新闻发送微信_如何利用 Python 爬虫实现给微信群发新闻早报?(详细)...
- lemon oa前端页面——由user-base-list谈项目组织
- 2017.8.12在线笔试编程真题总结
- UE4教程:虚幻4引擎(Unreal Engine 4)学习指南
- 你会用计算机吗怎么写,你会用computer吗
- 详细设计-程序结构图
- 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
- 奥利给,redis项目中初体验
- html状态中的302代码含义,网站状态码301与302的作用与区别
- 颜值在线的Mac播放器推荐-IINA
热门文章
- 手机成移动互联网入口必争之地
- 两台电脑大文件传输的详细教程
- 分析5 中值定理与Taylor公式
- SAP 后台表查询方法及消息报错定位方法
- 数据库软件设计(8684)
- 电脑装两个硬盘在计算机只显示一个,插入U盘出现两个盘符怎么解决?一个U盘显示两个盘符解决方法...
- CSS解构系列之-新浪页面解构-01
- 【历史上的今天】3 月 11 日:谷歌推出 Google Voice;互联网先驱诞生日;Foursquare 上线
- 京东换新 Logo :脸蛋胖了,脖子粗了
- php投票系统中各个文件的作用说明,简述一些php对文件的操作,投票活动的实现...