鸿蒙 ArkTS 实战:从零实现高颜值个人简历页面
·
一、效果预览
最终实现的简历页面包含以下模块:
- 顶部居中标题栏:带边框的「个人简历」标题
- 基本信息区:左侧姓名 / 学校等信息 + 右侧圆形头像
- 联系方式区:电话、邮箱并排展示
- 内容模块区:个人简介、主修课程、求职意向、自我评价,每个模块带独立边框和标题
整体采用浅灰色背景 + 黑色边框,风格简洁专业,符合移动端阅读习惯。
二、开发环境准备
- 开发工具:DevEco Studio 4.0+
- 开发语言:ArkTS
- 项目模型:Stage 模型
- 适配系统:HarmonyOS 4.0+
- 资源准备:提前准备一张头像图片(命名为
1.png/jpg),放入entry/src/main/resources/base/media目录
三、完整可运行代码
typescript
运行
@Entry
@Component
struct ResumePage {
build() {
// 最外层垂直布局容器,占满整个屏幕
Column() {
// 1. 顶部标题栏
Text("个人简历")
.width("100%")
.fontSize(25)
.fontWeight(FontWeight.Bold)
.textAlign(TextAlign.Center)
.padding(15)
.border({ width: 1, color: Color.Black })
// 2. 基本信息 + 头像 横向布局
Row() {
// 左侧:基本信息垂直布局
Column() {
// 第一行信息:姓名/性别/年龄
Row() {
Text("姓名:张三")
.fontSize(12)
.width("46%")
Text("性别:男")
.fontSize(12)
.width("27%")
Text("年龄:20")
.fontSize(12)
.width("27%")
}
.width("100%")
.padding(20)
.border({ width: 1, color: Color.Black })
.height(80)
// 第二行信息:毕业学校/专业/学历
Row({ space: 10 }) {
Text("毕业学校:河软")
.fontSize(12)
.width("40%")
Text("专业:计应")
.fontSize(12)
.width("27%")
Text("学历:大专")
.fontSize(12)
.width("27%")
}
.width("100%")
.padding(12)
.border({ width: 1, color: Color.Black })
.height(80)
}
.width("70%") // 左侧信息区占70%宽度
// 右侧:头像
Image($r("app.media.1"))
.width("30%")
.height(160)
.objectFit(ImageFit.Cover)
.border({ width: 1, color: Color.Black })
}
.width("100%")
// 3. 联系方式横向布局
Row() {
Text("电话:888888888")
.fontSize(12)
.width("50%")
.padding(20)
.border({ width: 1, color: Color.Black })
Text("邮箱:123@qq.com")
.fontSize(12)
.width("50%")
.padding(20)
.border({ width: 1, color: Color.Black })
}
.width("100%")
// 4. 个人简介模块
Column() {
Text("个人简介")
.fontSize(12)
.fontWeight(FontWeight.Bold)
.padding(15)
Text(" 计算机专业在校学生,熟悉前端、鸿蒙ArkTS开发,掌握SQL数据库、Web基础、计算机基础、python等等,具备项目开发与团队协作经验,热爱编程,学习能力强。")
.fontSize(12)
.padding({ left: 20, right: 20, bottom: 30 })
}
.width("100%")
.border({ width: 1, color: Color.Black })
// 5. 主修课程模块
Column() {
Text("主修课程")
.fontSize(12)
.fontWeight(FontWeight.Bold)
.padding(15)
Text("计算机基础、数据库SQL、Web前端开发、鸿蒙应用开发、计算机网络、操作系统、数据结构")
.fontSize(12)
.padding({ left: 20, right: 20, bottom: 30 })
}
.width("100%")
.border({ width: 1, color: Color.Black })
// 6. 求职意向模块
Column() {
Text("求职意向")
.fontSize(12)
.fontWeight(FontWeight.Bold)
.padding(15)
Text("前端开发工程师 / 后端开发工程师 / 软件编程")
.fontSize(12)
.padding({ left: 20, right: 20, bottom: 30 })
}
.width("100%")
.border({ width: 1, color: Color.Black })
// 7. 自我评价模块
Column() {
Text("自我评价")
.fontSize(12)
.fontWeight(FontWeight.Bold)
.padding(15)
Text(" 具备扎实计算机专业基础,熟练使用ArkTS完成鸿蒙页面搭建,拥有社团项目开发经验;逻辑清晰,善于沟通,能快速学习新技术,可独立完成基础功能开发,愿意从基层岗位积累成长。")
.fontSize(12)
.padding({ left: 20, right: 20, bottom: 30 })
}
.width("100%")
.border({ width: 1, color: Color.Black })
}
.width("100%")
.height("100%")
.backgroundColor(0xF0F0F0) // 浅灰色背景,提升页面质感
}
}
四、代码逐行深度解析
1. 组件入口定义
typescript
运行
@Entry
@Component
struct ResumePage {}
@Entry:标记该组件为页面入口,可独立渲染和预览@Component:自定义组件装饰器,实现 UI 复用struct:ArkTS 中定义组件的关键字
2. 最外层布局容器
typescript
运行
Column() { ... }
.width("100%")
.height("100%")
.backgroundColor(0xF0F0F0)
Column:垂直布局容器,所有子组件从上到下依次排列width("100%")/height("100%"):让容器占满整个屏幕backgroundColor(0xF0F0F0):设置浅灰色背景,避免纯白页面过于单调
3. 顶部标题栏
typescript
运行
Text("个人简历")
.width("100%")
.fontSize(25)
.fontWeight(FontWeight.Bold)
.textAlign(TextAlign.Center)
.padding(15)
.border({ width: 1, color: Color.Black })
width("100%"):标题栏占满屏幕宽度fontSize(25)/fontWeight(FontWeight.Bold):大号加粗字体,突出标题textAlign(TextAlign.Center):文字居中对齐padding(15):内边距,避免文字贴边border:添加 1px 黑色边框,让标题栏更醒目
4. 基本信息 + 头像横向布局
typescript
运行
Row() {
Column() { ... } // 左侧信息区
Image(...) // 右侧头像
}
.width("100%")
Row:水平布局容器,实现左右分栏- 左侧
Column占70%宽度,用于展示两行个人信息 - 右侧
Image占30%宽度,展示头像 - 头像设置:
objectFit(ImageFit.Cover)保证图片不变形铺满容器,border添加边框和整体风格统一
5. 信息行布局技巧
typescript
运行
Row() {
Text("姓名:张三").width("46%")
Text("性别:男").width("27%")
Text("年龄:20").width("27%")
}
- 用
Row实现水平排版,通过width("xx%")精确控制每个文本的占比,保证信息对齐 padding和height固定行高,让布局更规整border给每行信息添加边框,形成表格感
6. 内容模块设计
typescript
运行
Column() {
Text("个人简介").fontWeight(FontWeight.Bold).padding(15)
Text(...)
}更多推荐



所有评论(0)