HarmonyOS开发实战:小分享-ArkUI 基础组件详解——Text、Button、Image

前言

Text 、Button 、Image 是 ArkUI 最基础的三大组件,几乎每个页面都离不开它们。小分享 App 大量使用了这些组件。本篇集中讲解它们的核心属性和常见用法。详细 API 可参考 HarmonyOS Text 官方文档。

一、Text 组件

1.1 基本用法

typescript 复制代码
Text('小分享')
  .fontSize(20)
  .fontWeight(FontWeight.Bold)
  .fontColor('#1A1A1A')

1.2 Text 常用属性

属性 作用 示例
fontSize 字号 20
fontWeight 字重 FontWeight.Bold
fontColor 颜色 '#1A1A1A'
textAlign 对齐 TextAlign.Center
maxLines 最大行数 1
textOverflow 溢出处理 TextOverflow.Ellipsis
lineHeight 行高 28
letterSpacing 字间距 2

1.3 文字省略

typescript 复制代码
Text(item.title)
  .maxLines(1)
  .textOverflow({ overflow: TextOverflow.Ellipsis })

二、Button 组件

2.1 基本用法

typescript 复制代码
Button('小分享')
  .fontSize(16)
  .fontColor(Color.White)
  .backgroundColor('#F5A623')
  .width('60%')
  .height(48)
  .borderRadius(24)
  .onClick(() => { router.replaceUrl({ url: 'pages/HomePage' }) })

2.2 Button 常用属性

属性 作用 示例
width 宽度 '90%' / 200
height 高度 48
backgroundColor 背景色 '#F5A623'
borderRadius 圆角 24
fontSize 字号 16
fontColor 文字颜色 Color.White
onClick 点击事件 () => {}

2.3 透明按钮

typescript 复制代码
Button('退出登录')
  .fontSize(16)
  .fontColor('#F44336')
  .backgroundColor(Color.Transparent)
  .width('100%')
  .height(48)
  .borderRadius(12)

三、Image 组件

3.1 基本用法

typescript 复制代码
Image($r('app.media.app_icon'))
  .width(64)
  .height(64)
  .borderRadius(32)
  .objectFit(ImageFit.Cover)

3.2 Image 常用属性

属性 作用 示例
width 宽度 64
height 高度 64
borderRadius 圆角 32
objectFit 填充模式 ImageFit.Cover
src 图片来源 资源/网络/本地

3.3 三种图片来源

typescript 复制代码
// 1. 资源文件
Image($r('app.media.app_icon'))

// 2. 网络图片
Image('https://example.com/image.png')

// 3. 本地文件
Image('/data/storage/el2/base/haps/entry/files/image.png')

四、Text、Button、Image 对比

组件 用途 核心属性
Text 文字展示 fontSize, fontColor, textAlign
Button 点击操作 backgroundColor, borderRadius, onClick
Image 图片展示 objectFit, src

五、本文核心知识点

5.1 基础组件核心要点

  1. Text:字数限制、溢出省略、行高
  2. Button:圆角、背景色、点击事件
  3. Image:三种图片来源、填充模式

5.2 实战开发要点

  • 文字溢出用 maxLines + textOverflow
  • 按钮圆角 = 高度/2 时为胶囊形
  • 图片资源用 $r 引用

相关资源


附录:基础组件的完整实现细节

1. Text 组件完整属性

属性 作用 示例
fontSize 字号 20
fontWeight 字重 FontWeight.Bold
fontColor 颜色 '#1A1A1A'
textAlign 对齐 TextAlign.Center
maxLines 最大行数 1
textOverflow 溢出处理 TextOverflow.Ellipsis
lineHeight 行高 28
letterSpacing 字间距 2

2. Button 组件完整属性

typescript 复制代码
Button('小分享')
  .fontSize(16).fontColor(Color.White).backgroundColor('#F5A623')
  .width('60%').height(48).borderRadius(24)
  .onClick(() => { router.replaceUrl({ url: 'pages/HomePage' }) })

3. Image 组件完整用法

typescript 复制代码
// 资源文件
Image($r('app.media.app_icon')).width(64).height(64).borderRadius(32).objectFit(ImageFit.Cover)

// 网络图片
Image('https://example.com/image.png').width('100%').height(200).objectFit(ImageFit.Cover)

// 本地文件
Image('/data/storage/el2/base/haps/entry/files/image.png')

4. 三种图片来源

来源 语法 示例
资源文件 $r('app.media.xxx') 应用内置图标
网络图片 URL 字符串 在线图片
本地文件 文件路径 沙箱文件

5. 完整代码文件索引

文件路径 说明
所有页面文件 使用 Text/Button/Image

6. 总结

本文详细讲解了 ArkUI 三大基础组件 Text、Button、Image 的完整属性和用法。


相关资源


  • ArkUI 表单组件

本文涉及的所有 API 索引

API 类别 用途
Column 布局容器 垂直排列子组件
Row 布局容器 水平排列子组件
Text 基础组件 显示文本
ForEach 渲染控制 循环渲染列表
@State 装饰器 组件内状态管理
@Builder 装饰器 封装可复用 UI 片段
router.pushUrl 路由 页面跳转
router.back 路由 返回上一页

总结

本文详细讲解了小分享 App 中对应页面的完整实现。核心知识点涵盖布局容器、组件封装、状态管理、路由跳转等关键技术。通过本文的学习,读者可以掌握 HarmonyOS ArkUI 声明式开发的核心技能,并能够独立实现类似的页面功能。


相关资源


6. Text 组件完整用法

typescript 复制代码
// 基本文字
Text('小分享').fontSize(20).fontWeight(FontWeight.Bold).fontColor('#1A1A1A')

// 多行文字省略
Text(item.title).maxLines(1).textOverflow({ overflow: TextOverflow.Ellipsis })

// 行高设置
Text('正文内容').fontSize(14).fontColor('#666666').lineHeight(28)

// 对齐方式
Text('居中标题').fontSize(18).textAlign(TextAlign.Center).width('100%')

7. Button 组件完整用法

typescript 复制代码
// 主按钮 - 胶囊形
Button('小分享').fontSize(16).fontColor(Color.White).backgroundColor('#F5A623').width('60%').height(48).borderRadius(24)

// 透明按钮 - 红色文字
Button('退出登录').fontSize(16).fontColor('#F44336').backgroundColor(Color.Transparent).width('100%').height(48).borderRadius(12)

// 功能按钮 - 使用此模板
Button('使用此模板').fontSize(16).fontColor(Color.White).backgroundColor('#F5A623').width('90%').height(48).borderRadius(24).margin({ bottom: 20 })

8. Image 组件完整用法

typescript 复制代码
// 资源图片
Image($r('app.media.app_icon')).width(64).height(64).borderRadius(32).objectFit(ImageFit.Cover)

// 网络图片
Image('https://example.com/image.png').width('100%').height(200).objectFit(ImageFit.Cover)

// 本地文件图片
Image('/data/storage/el2/base/haps/entry/files/image.png')

9. 三种图片来源对比

来源 语法 示例 适用场景
资源文件 $r('app.media.xxx') 应用内置图标 固定图标、启动图
网络图片 URL 字符串 在线图片 URL 用户头像、内容图
本地文件 文件路径 沙箱文件路径 用户拍摄的照片

10. 小分享 App 中的使用

组件 使用场景 示例
Text 标题、正文、标签 所有页面的文字
Button 操作按钮、分享按钮 导航栏、底部按钮
Image 图片展示 头像、预览图、Banner

11. 完整代码文件索引

文件路径 说明
所有页面文件 使用 Text/Button/Image

12. 本文涉及的所有 API

API/组件 用途 文档链接
Text 文本组件 Text
Button 按钮组件 Button
Image 图片组件 Image
ImageFit 图片填充模式 Image
TextOverflow 文字溢出处理 Text
TextAlign 文字对齐 Text
FontWeight 字重 Text

13. 实现要点总结

基础组件核心要点:

  1. Text:支持 fontSize、fontWeight、fontColor、textAlign、maxLines、textOverflow、lineHeight 等属性
  2. Button:支持 backgroundColor、borderRadius、fontSize、fontColor、onClick 等属性
  3. Image:支持三种图片来源(资源、网络、本地),objectFit 控制填充模式

14. 总结

本文详细讲解了 ArkUI 三大基础组件 Text、Button、Image 的完整属性和用法。


相关资源


  • ArkUI 表单组件

  • @Builder 与 @Component 对比

  • ArkUI 表单组件


  • @Builder 与 @Component 对比

  • ArkUI 表单组件


  • @Builder 与 @Component 对比

  • ArkUI 表单组件


  • @Builder 与 @Component 对比

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!

相关推荐
马剑威(威哥爱编程)11 小时前
【共创稿事节】HarmonyOS 7 Agent 开发实战 11:并发多会话隔离
华为·harmonyos
行者-全栈开发14 小时前
【共创稿事节】HarmonyOS 7 空间音频实战:用 AudioSpatializationManager 构建“听得见方位“的声场
harmonyos·arkts·鸿蒙·空间音频·api 26·audio kit
马剑威(威哥爱编程)15 小时前
【共创稿事节】HarmonyOS 7 Agent 开发实战 03:Tool Calling 让 AI 查实时订单与库存
华为·harmonyos
倔强的石头10617 小时前
把 Typst 搬上开源鸿蒙 PC:一次“干净”的移植记录
华为·开源·harmonyos
梦想不只是梦与想19 小时前
鸿蒙 预览数据模拟:Hamock
harmonyos·模拟数据·hamock
贾伟康1 天前
【化学实验室|04】HarmonyOS ArkTS 场景选择器实战:让 13 个离线实验的入口、筛选和返回路径保持一致
harmonyos·arkts·canvas·arkui·化学实验
特立独行的猫a1 天前
仓颉语言GUI开发实战:用仓颉写串口/网络二合一调试助手
网络·ui·gui·harmonyos·tauri·仓颉
hqzing1 天前
把 glibc 移植到鸿蒙 PC 上:它能用来做什么
华为·harmonyos
OH_TPC2 天前
HarmonyOS APP开发---“习惯猫“习惯打卡App,需要用到这个库
华为·harmonyos·鸿蒙
熊猫钓鱼>_>2 天前
开源鸿蒙平台 KMP 三方库 kotlin-csv 适配全流程:从编码假设到沙箱真机互通验证
开发语言·人工智能·华为·kotlin·harmonyos·鸿蒙