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

前言

TextButtonImage 是 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 对比

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

相关推荐
贾伟康33 分钟前
【知律|10】HarmonyOS ArkTS 案例边界实战:明确普法内容不替代法律意见
harmonyos·arkts·arkui·应用合规·内容治理
xq95271 小时前
鸿蒙组件化设计横空出世
harmonyos
特立独行的猫A1 小时前
Tauri v2 桌面应用m3u8dl-tauri移植到 HarmonyOS(鸿蒙 PC)完整实战指南
harmonyos
HarmonyOS_SDK1 小时前
从“一屏一态”到“一屏多能”:WPS通过HarmonyOS多窗口能力重塑移动办公体验
harmonyos
世人万千丶2 小时前
收纳格卡片风:ArkUI 让鸿蒙物品清单像收纳盒贴标
学习·华为·harmonyos·鸿蒙
yuhulkjv3352 小时前
Grok鸿蒙版导出word格式的终极解法:AI导出鸭如何重构AI内容到文档的最后一公里
人工智能·ai·word·harmonyos·ai导出鸭
大锅盖13 小时前
HarmonyOS 6.1.1 ArkWeb:交付门户下载资料前-为什么必须先登记下载代理与来源字段
android·华为·harmonyos
特立独行的猫a3 小时前
Tauri v2的Rust应用 → HarmonyOS(鸿蒙 PC)移植30分钟速成指南
开发语言·rust·harmonyos·tauri·移植·鸿蒙pc
YM52e15 小时前
分页查询的基石:ArkTS 为鸿蒙商品列表设计 LIMIT/OFFSET 的表
android·学习·华为·harmonyos